【发布时间】:2012-09-06 10:47:04
【问题描述】:
我需要使用 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 中显示任何功能。难道我做错了什么?我已经搜索了很多,但仍然没有从可能发生的事情中得出任何结论。
【问题讨论】:
-
您是否正在将您的应用程序与使用您的 dll 创建的导入库链接?
-
是的,我认为链接没问题。我的猜测是,也许 DLL 出现损坏或其他问题。 Dependency Walker 甚至无法在其中找到任何内容。
-
您没有链接到 .dll,所以这不是问题。
-
你的控制台应用程序是否有这样的 Foo 原型:__declspec(dllimport) void Foo(void);
-
请记住,您在 dll 本身中使用 __declspec(dllexport) 并为使用 dll 的任何应用程序使用 __declspec(dllimport)。
标签: c++ visual-studio-2008 dll mfc