在c++中使用导入的dll内部类方法
Use imported dll inner class methods in c++
我有一个问题使用第三方。dll库:该库有一些类的方法,我需要在我的Java应用程序通过JNI编译的。dll中使用。我想声明这样的东西:
#ifdef SERVER_EXPORTS
#define SERVER_API __declspec(dllexport)
#else
#define SERVER_API __declspec(dllimport)
#endif
namespace MYDLLNAMESPACE
{
class SERVER_API IServer
{
public:
int NFun(int func);
};
class SERVER_API ServerClass : public IServer {
public:
ServerClass();
int NFun(int func) {
return MYDLLNAMESPACE::ServerClass::NFun(func);
}
};
}
然后在代码中使用它:
IServer *Myserv = new Server();
int a = Myserv->NFun(5007);
return a;
但它会出现错误"error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __thiscall MYDLLNAMESPACE::IServer:"
我需要这样做:
Iserver myServer = new Server();
int result = myServer.do_smth();
return result;
有什么方法可以做到吗?
注:我没有任何。lib或。h文件的第三方。dll
编辑:现在我得到了Server.h文件:
namespace NS {
class __declspec(dllexport) ServerClass
{
public:
ServerClass() {
}
const char* GParam(const char* key);
const char* SParam(const char* key, const char* value);
};
}
和我的Impl.cpp文件,在那里我试图实例化ServerClass并使用它的方法'GParam',像这样:
ServerClass *serv = new ServerClass();
const char* str = serv->GParam("LastErrorTxt");
但它去StackOverFlowException,似乎serv->GParam("LastErrorTxt")是执行自己而不是dll类实现
使用com4j解决问题: http://com4j.kohsuke.org/
相关文章:
- 挂起和取消挂起一个文件DLL
- 将函数类成员映射到类本身内部
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- Boost Spirit,获取迭代器内部语义动作
- 从动态加载的 dll 内部调用C++函数
- Unity内部编译器错误与自定义DLL
- Visual Studio 2008版本内部版本未装饰DLL导出
- 独立 DLL 之间的内部进程通信
- 隐式 DLL 链接和类内部函数
- C++ Windows DLL 使用 try-catch 块在内部失败
- 调用DLL内部的函数
- dll内部定义的派生嵌套类的序列化
- 从c++调用vb.net-comvisible dll内部的函数
- JNI DLL的依赖关系,它在内部调用另一个DLL
- 从类函数内部调用 DLL 的外部函数
- 设置显式链接DLL的内部变量