Visual Stidio 2015 # комментарий к прагме (компоновщик, "/ параметры экспорта) - PullRequest
0 голосов
/ 04 октября 2018
Visual Stuio 2015 #pragma comment(linker, "/EXPORT  options

После перехода на X64 мне пришлось удалить следующие прагмы

#pragma comment(linker,"/EXPORT:DllCanUnloadNow=_DllCanUnloadNow@0,PRIVATE")
#pragma comment(linker,/EXPORT:DllGetClassObject=_DllGetClassObject@12,PRIVATE")
#pragma comment(linker, "/EXPORT:DllRegisterServer=_DllRegisterServer@0,PRIVATE")
#pragma comment(linker, "/EXPORT:DllUnregisterServer=_DllUnregisterServer@0,PRIVATE")

Чтобы решить следующие неразрешенные внешние символы:

1>NmsCmCommon.exp : error LNK2001: unresolved external symbol _DllCanUnloadNow@0
1>NmsCmCommon.exp : error LNK2001: unresolved external symbol _DllGetClassObject@12
1>NmsCmCommon.exp : error LNK2001: unresolved external symbol _DllRegisterServer@0
1>NmsCmCommon.exp : error LNK2001: unresolved external symbol _DllUnregisterServer@0

Ват для чего эти прагмы и для чего?проблемы могут возникнуть, если они будут удалены?

1 Ответ

0 голосов
/ 19 марта 2019

Теперь я вижу проблему без пагм

pragma comment(linker,"/EXPORT:DllCanUnloadNow=_DllCanUnloadNow@0,PRIVATE")
pragma comment(linker,/EXPORT:DllGetClassObject=_DllGetClassObject@12,PRIVATE")
pragma comment(linker, "/EXPORT:DllRegisterServer=_DllRegisterServer@0,PRIVATE")
pragma omment(linker,"/EXPORT:DllUnregisterServer=_DllUnregisterServer@0,PRIVATE")

Нужны без них, не могу зарегистрировать мою dll с помощью regsv32, потому что отсутствует функция llRegisterServer - так что я должен реализовать эту функцию бот, почему это работает толькодля X86, а не для X64, даже если там, где нет изменений источника и только некоторая адаптация проекта

...