如何导出qt .dll并通过pInvoke

时间:2018-03-06 12:45:38

标签: c# c++ qt

我试图找到一些答案但却找不到......

我用QT(c ++)编写了dll,我需要用c#代码

导入它

我是通过COM接口完成的,但这需要注册我会避免它,所以我读了一些关于pInvoke的内容。

我得到了什么:

MyClass.h

class __declspec(dllimport) MyClass : public QObject
{
 public:
     explicit MyClass(QOjbect *parentObject);
     MyClass();
     virtual ~MyClass();

 public:
     Qstring getDeviceName(const QString& deviceNumber);
}

MyClass.cpp

QString MyClass::getDeviceName(const QString& deviceNumber) 
{ 
 some logic code here
}

在我的ConsoleApp中,我需要读取此值(将MyClass.dll复制到ConsoleApp \ bin \ Debug目录中):

class Program{
[dllImport("MyClass.dll")]
 static extern string getDeviceName(string deviceNumber)

     static void Main(string[] args)
     {  
       string name = getDeviceName("13");
     }
}

运行构建后,异常出现“DllNotFoundException”,我确信该文件存在。

你知道如何解决它吗? 有没有办法编组像枚举这样的变量?

0 个答案:

没有答案