Выпуск сборки Visual Studio 2008 без декорирования экспорта DLL

Я собираю C ++ DLL в Visual Studio 2008 для использования приложением C, написанным на Borland C ++ Builder 6.

Моя отладочная DLL-библиотека экспортирует методы, украшенные подчеркиванием. Однако в моей версии DLL сборки методы не оформлены, что приводит к ошибкам компоновщика в C ++ Builder. (См. Ниже вывод для dumpbin.exe для обоих типов сборки)

Я проверил параметры компилятора для конфигурации отладки и выпуска и не вижу ничего, что могло бы вызвать эту проблему.

Мне удалось обойти проблему. Инструмент Borland Implib, который преобразует .lib-файлы Visual Studio в .lib-файлы C ++ Builder, может добавить подчеркивание. Но мне хотелось бы понять, почему экспорт не оформляется.

Заголовочный файл методов .h

#ifndef METHODS_H
#define METHODS_H

#ifdef ENCRYPTION_EXPORTS
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT __declspec(dllimport)
#endif

#ifdef __cplusplus
extern "C"{
#endif

DLLEXPORT BOOL EncryptString(char *szPlain, char *szEncrypted);
DLLEXPORT BOOL DecryptString(char *szEncrypted, char *szPlain);
DLLEXPORT BOOL EncryptInitialise(void);
DLLEXPORT void EncryptExit(void);

#ifdef __cplusplus
}
#endif

#endif

Dumpbin.exe вывод для отладочной сборки

dumpbin / EXPORTS encryption.dll

Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file encryption.dll

File Type: DLL

Section contains the following exports for encryption.dll

00000000 characteristics
50B8B22E time date stamp Fri Nov 30 13:18:38 2012
0.00 version
1 ordinal base
4 number of functions
4 number of names

ordinal hint RVA      name

1    0 000308F7 DecryptString = @ILT+2290(_DecryptString)
2    1 00031635 EncryptExit = @ILT+5680(_EncryptExit)
3    2 000303CF EncryptInitialise = @ILT+970(_EncryptInitialise)
4    3 0003003C EncryptString = @ILT+55(_EncryptString)

Summary

5000 .data
1000 .idata
13000 .rdata
5000 .reloc
1000 .rsrc
64000 .text
2F000 .textbss

Выходные данные Dumpbin.exe для сборки выпуска

dumpbin / EXPORTS encryption.dll

Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file encryption.dll

File Type: DLL

Section contains the following exports for encryption.dll

00000000 characteristics
50B8BE14 time date stamp Fri Nov 30 14:09:24 2012
0.00 version
1 ordinal base
4 number of functions
4 number of names

ordinal hint RVA      name

1    0 00001A10 DecryptString
2    1 000012C0 EncryptExit
3    2 00001370 EncryptInitialise
4    3 00001820 EncryptString

Summary

4000 .data
4000 .rdata
2000 .reloc
1000 .rsrc
F000 .text

1

Решение

вот статья о соглашения о вызовах и оформление имен. оформление имени может быть отменено файлом * .def в вашем проекте.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]