我有一个/ clr选项为ON的DLL。我的DLL中有以下声明:
int __declspec(dllexport) __cdecl test();
另外,我有一个控制台,其中/ clr选项为ON。并在main.cpp文件中声明以下声明:
int __declspec(dllimport) __cdecl test();
我在控制台应用程序的属性设置中添加了对DLL项目的引用。但是我仍然从编译器中得到关于测试函数的未解析的外部。
我设法通过手动添加对编译器生成的lib文件的引用来编译。但是后来我无法在DLL函数中找到断点(它说源代码与原始版本不同或者符号尚未加载......)
有人可以帮助我吗?
答案 0 :(得分:0)
如果您的DLL不使用任何托管功能,只需从该项目中删除/clr
选项并重新编译即可。如果仍然出现错误,则可能与控制台应用程序中的引用有关。
如果DLL使用托管功能,那么您需要的是:
<强> DLL 强>:
#include "stdafx.h"
namespace Test1
{
public ref class Test2
{
public:
static int test()
{
return 1;
}
};
}
控制台应用:
#include <iostream>
int main(int argc, char* argv[])
{
int i = Test1::Test2::test();
std::cout << i << std::endl;
return 0;
}