我使用freecommandlinetools编译器bcc32。我需要在我的程序中使用第三方dll。我不想拨打LoadLibrary
和GetProcAddress
,而是在我的程序中链接dll以直接调用dll函数。
#include "somelibrary.h"
int main() {
somefunction(); // defined in somelibrary.dll
}
我在尝试编译时看到未解析的外部因素。如何说服链接器与somelibrary.dll链接?
答案 0 :(得分:4)
您必须创建.lib才能直接链接dll。 假设你的dll是user32.dll:
implib -a -c -f user32.lib user32.dll
将使用user32.dll的所有符号创建user32.lib。然后将您的项目与user32.lib而不是user32.dll链接。
您可以使用impdef.exe命令查看dll导出的符号。如果这些符号已经以下划线'_'开头,则可以省略implib命令中的-a。