gpt4 book ai didi

c++ - 无法从 C++ DLL 导出函数

转载 作者:太空宇宙 更新时间:2023-11-04 12:05:21 25 4
gpt4 key购买 nike

我需要使用 Visual Studio 2008 创建一个 C++ MFC DLL。为此,我在 Visual Studio 中创建了一个 DLL MFC Win32 控制台项目,并创建了一个创建对象并使用其方法将字符串打印到屏幕的函数。有点像这样:

__declspec(dllexport) void Foo(void);

哪里:

    void Foo(void){
print* obj = new print;
obj->testPrint();
return;
}

void print::testPrint(void){
printf("Bar\n");
return;
}

它编译成功并生成 DLL,但是当我尝试使用它时,我总是得到:“错误 LNK2019:未解析的外部符号“void __cdecl Foo(void)”

我尝试使用 Dependency Walker,但它没有在 DLL 中显示任何函数。难道我做错了什么?我进行了很多搜索,但仍然无法从可能发生的事情中得出任何结论。

最佳答案

听起来您可能没有在任何 cpp 文件中包含指定导出的头文件。请记住,cpp 文件是唯一实际编译的文件。因此,请确保至少在一个 cpp 文件中包含带有 __declspec(dllexport) void Foo(void); 的 header 。还要确保您的项目链接器-> 输入设置没有指定“模块定义文件”(def) 文件。

在 dependency walker 显示某些东西确实被导出之前,不要费心尝试链接到 DLL。

关于c++ - 无法从 C++ DLL 导出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com