【发布时间】:2012-02-25 11:36:00
【问题描述】:
我在一个问题上看到无法链接静态 C++/CLI 库,因此我生成了一个动态库并尝试将其链接到 C++ CLR 控制台项目中,但没有成功
我得到:
错误 1 错误 LNK2020:未解析的令牌 (06000001) cBox::.ctor pTest9.obj
我把dll(项目->引用->添加新引用)设置在项目中的包含文件
(包含没有代码的文件)
我不知道该怎么做(我是 C++/CLI 新手)
感谢您的建议/解决方案
库项目声明为 DLL
#include "stdafx.h"
using namespace System;
ref class cBox
{
public:
cBox() ;
cBox(double lv,double bv,double hv);
double Volume();
private:
double Length;
double Width;
double Height;
};
图书馆代码:
#include "stdafx.h"
#include "cBox.h"
cBox::cBox()
{
Console::WriteLine(L"No arg constructor called");
Length = 1.0 ;
Width = 1.0 ;
Height = 1.0 ;
}
cBox::cBox(double lv,double bv,double hv)
{
Console::WriteLine(L"Constructor called");
Length = lv;
Width = bv;
Height = hv;
}
double cBox::Volume()
{
return Length*Width*Height;
}
然后在控制台 CLR 项目中我尝试链接这个库,我得到它的 .h 文件
#include "stdafx.h"
#include "cBox.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Test Library:\n");
cBox^ oBox; // handle of type box
oBox = gcnew cBox;
Console::WriteLine(L"Default Box Volume {0}",oBox->Volume());
return 0;
}
【问题讨论】:
-
我们需要查看代码才能为您提供帮助
-
因此您想使用 C++ 将一些代码编译成托管程序集。然后你想使用该程序集中的 .lib 吗?
-
其实应该是可以的。您能否提供更多信息和代码和项目布局示例。
-
你知道
#using怎么用吗?除非您导入托管类,否则您不能使用它们。 -
您好,感谢您的支持;MajesticRa 我将代码放在消息上,JN:我不知道#using 声明您能告诉我这个案例需要写什么吗?谢谢再次