我正在尝试在Visual Studio 2010的C#项目中使用C++库(GAlib)。

我构建了库以获取.lib,并感谢您的有用建议:

Using c++ library in c#

我可以调用这些函数,但无法创建从库中存在的类继承的类。

我已遵循本指南

http://blogs.msdn.com/b/vcblog/archive/2008/12/08/inheriting-from-a-native-c-class-in-c.aspx

我加了

__declspec(dllexport) class GAEvalData {
public:
. . .
}

但是使用
dumpbin / EXPORT ga.lib
要实现EntryPoint,我没有任何信息。

我报告dumpbin输出:
Dump of file ga.lib
File Type: LIBRARY

没别的。

也反转
class __declspec(dllexport) GAEvalData {
public:
. . .
}

似乎没有工作。

有什么建议么?

这是从外部库继承类的最佳方法吗?

提前致谢,

戴夫

最佳答案

通常,您应该声明您的类,类似于:

#ifdef DBTOOL_EXPORTS
#define DBTOOL_API __declspec(dllexport)
#else
#define DBTOOL_API __declspec(dllimport)
#endif

class DBTOOL_API Class {}

您的C++ dll应该定义DBTOOL_EXPORTS。
我认为这个想法很明确。
希望它会有所帮助

关于c# - C#中的C++库-继承类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9149493/

10-13 08:19