【发布时间】:2016-02-15 18:36:48
【问题描述】:
我有一个带有一些导出函数的 C++ DLL。导出的函数之一是构建并返回指向类实例的指针的函数。我有这个类的标题(.h),所以我确切地知道它的方法是什么。 但是,该类的方法并没有导出到 DLL 中。
我的目标是构建一个包装 DLL,它将使用其他 DLL 中的一些函数。应该能够使用 JNA 从 Java 或使用 P/Invoke 从 C# 调用这个新的 DLL。
可以调用这个对象的方法吗?如果是,我应该如何进行?
我试图简单地这样做:
MyObject* myObject = GetMyObject();
myObject->callMethod();
我能够编译我的 DLL,但是,当我在程序中使用它时它会崩溃(callMethod() 崩溃,而不是 GetMyObject())。
编辑: 我检查了 myObject 不为空,并且我的 DLL 和另一个都是用 MSVC 构建的,尽管版本可能不一样。
【问题讨论】:
-
1.你检查过
myObject != NULL吗? 2. 你的 DLL 是否使用与另一个相同的编译器和相同的版本构建?