如何设置 Visual Studio 2010 项目来为 Slickedit 17 构建 64 位扩展 dll?
Posted
技术标签:
【中文标题】如何设置 Visual Studio 2010 项目来为 Slickedit 17 构建 64 位扩展 dll?【英文标题】:How do I set up a Visual Studio 2010 project for building a 64 bit extension dll for Slickedit 17? 【发布时间】:2012-12-29 22:08:14 【问题描述】:我正在迁移到 Windows 7,进入 Slickedit 17 64 位,并拥有一个旧的 32 位 Slickedit 扩展 DLL,我需要将其重新创建为 64 位。这个 DLL 基本上是一堆 WinAPI 调用的包装器。
Slickedit 附带一个示例 32 位“simple.dll”项目 (ahem),它只是一个 makefile。我需要知道如何设置 Visual Studio 项目以使用 Slickedits 库构建 64 位 DLL。
提供的makefile如下:
# This makefile supports the following Visual C++ versions:
# 7.10 (Visual Studio 2003), 8.00 (Visual Studio 2005),
# and 9.00 (Visual Studio 2008)
#
# Nmake macros for building Windows 32-Bit apps
!include <Win32.mak>
# Set linkdebug to nothing to link DLL without debug
#linkdebug=
DLLNAME=simple
cflags=$(cflags) -D_WINDOWS -I..\..\h
all: $(DLLNAME).lib $(DLLNAME).dll
# Update the object files if necessary
$(DLLNAME).obj: $(DLLNAME).cpp
$(cc) $(cflags) $(cvarsmt) $(cdebug) -Tp $*.cpp
# Update the import library
$(DLLNAME).lib: $(DLLNAME).obj $(DLLNAME).def
$(implib) -machine:$(CPU) \
-def:$(DLLNAME).def $*.obj -out:$*.lib
# Update the dynamic link library
LIBDIR=lib
$(DLLNAME).dll: $(DLLNAME).obj $(DLLNAME).def makefile
$(link) $(linkdebug) \
-NODEFAULTLIB:libc -base:0x1C000000 \
-dll -entry:_DllMainCRTStartup$(DLLENTRY) \
-out:$*.dll \
$*.exp $*.obj ..\..\$(LIBDIR)\dllmain.obj ..\..\$(LIBDIR)\vsapi.lib ..\..\$(LIBDIR)\secommon.lib $(conlibsmt)
clean :
del $(DLLNAME).dll $(DLLNAME).obj $(DLLNAME).pdb $(DLLNAME).ilk
Makefiles 不是我的菜,而且这个文件无论如何都设置为 32 位。那么如何设置一个 Studio 项目来处理这种类型的 C++ 构建。我有:
C:\se17\lib\dllmain.obj C:\se17\lib\secommon.lib C:\se17\lib\tagsdb.lib C:\se17\lib\vsapi.lib以及在 C:\se17\h 中提供的头目录
我之所以这么问是因为我对在 community.slickedit.com 上获得体面的回应持怀疑态度,无论如何上帝都爱他们
【问题讨论】:
从 64 位 Visual Studio 命令提示符运行 nmake。 【参考方案1】:您需要告诉链接器您的 DLL 目标是 64 位的。这是由链接器行上的/MACHINE:X64
完成的。我只是在“$(linkdebug)”之后添加它。
您还需要将编译器设置为指向 amd64 版本,此问题中对此进行了说明: How do you compile 32-bit and 64-bit applications at the same time in Visual Studio for C/C++ in a makefile?
【讨论】:
以上是关于如何设置 Visual Studio 2010 项目来为 Slickedit 17 构建 64 位扩展 dll?的主要内容,如果未能解决你的问题,请参考以下文章
如何设置visual studio 2010中text字体大小
Visual Studio 2010 插件:如何定位项目引用?
visual studio如何设置自动检查语法错误啊!我用的2010版本
如何在 Visual Studio 2010 中设置 Qt 路径?
关于在Visual Studio2010中如何卸载Visual Asixist这个插件?为啥将它卸载后Visual Studio启动后仍然有