我想在这个网站http://projnet.codeplex.com/中包含一个dll但它只提供一个dll文件和一个xml文件,不包含头文件或lib文件。是否可以使用
之类的东西导入dllQLibrary geolib("ProjNet.dll");
geolib.load();
如果它有效(在这种情况下geolib.isloaded为true)那么我如何在Qt中使用它?
非常感谢!!!
答案 0 :(得分:2)
这是.net框架的托管DLL,它解释了为什么它没有头文件。您将无法直接使用它。你需要把它包起来。例如,使用COM或作为混合模式C ++ / CLI DLL。
答案 1 :(得分:0)
您只能以这种方式使用导出的函数(为此您需要知道函数的名称和原型)。加载DLL后,您应该调用resolve方法。例如,您想使用MyModule.dll中的导出函数 foo :
extern "C" Q_DECL_EXPORT void foo(int a)
您需要创建原型:
typedef void (*MyProto)(int)
而不是解决它:
QLibrary myDll("MyModule.dll");
if (myDll.load())
{
MyProto mp = reinterpret_cast<MyProro>(myDll.resolve("foo"));
}
不幸的是,ProjNet.dll没有导出。