Я перехожу на Windows 7, перехожу в Сликедит 17 64 бит и иметь старую 32-битную DLL-библиотеку расширения Slickedit, которую мне нужно воссоздать как 64-битную. Эта DLL в основном представляет собой связку для вызовов WinAPI.
Slickedit поставляется с примером 32-битного проекта ‘simple.dll’ (хм), который является только make-файлом. Мне нужно знать, как настроить проект Visual Studio для создания 64-битной DLL с помощью библиотек Slickedits.
Предоставленный make-файл выглядит следующим образом:
# 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 Project для обработки этого типа сборки C ++. У меня есть:
И поставляемый каталог заголовка в C: \ se17 \ h
Я спрашиваю об этом, потому что я довольно скептически отношусь к получению достойного ответа на community.slickedit.com.
Вы должны сообщить компоновщику, что ваша целевая библиотека DLL является 64-битной. Это сделано /MACHINE:X64
на линии компоновщика. Я бы просто добавил это после «$ (linkdebug)».
Вам также нужно будет установить компилятор так, чтобы он указывал на версию amd64, что объясняется в этом вопросе:
Как вы компилируете 32-битные и 64-битные приложения одновременно в Visual Studio для C / C ++ в make-файле?
Других решений пока нет …