我使用 freecommandlinetools 编译器 bcc32。我需要在我的程序中使用第三方 dll。我不想调用LoadLibraryand GetProcAddress,而是在我的程序中链接 dll 以直接调用 dll 函数。
#include "somelibrary.h"
int main() {
somefunction(); // defined in somelibrary.dll
}
Run Code Online (Sandbox Code Playgroud)
我在尝试编译时看到未解析的外部对象。如何说服链接器与 somelibrary.dll 链接?
您必须创建一个 .lib 才能直接链接 dll。假设你的 dll 是 user32.dll :
implib -a -c -f user32.lib user32.dll
Run Code Online (Sandbox Code Playgroud)
将使用 user32.dll 的所有符号创建 user32.lib。然后使用 user32.lib 而不是 user32.dll 链接您的项目。
可以使用impdef.exe命令查看dll导出的符号。如果这些符号已经以下划线“_”开头,则可以省略 implib 命令中的 -a。
| 归档时间: |
|
| 查看次数: |
1389 次 |
| 最近记录: |