我現在需要一些幫助。如果有人能夠幫助我們「轉移」我的基於QT的代碼以與我的C#應用程序一起工作,我很樂意。Qt非託管C++類與C#.Net工作
可以說我有這個簡單的QT類:
class ItShouldWork : public QObject
{
Q_OBJECT
public:
ItShouldWork(QObject* parent = 0) : QObject(parent){}
QString id() const { return objectName(); }
};
現在我希望能夠與Visual Studio C#來訪問這個類,我試圖創建通過包裝的非託管的DLL和訪問,試圖創建一個COM組件,但現在我完全卡住了,所以我回到這個簡單的類的開頭。我已經看到了你可以使用一個外部的「C」與__declspec(dllexport)的是這樣的:
extern "C" __declspec(dllexport) double Subtract(double a, double b)
,然後在.NET中使用_dllImport,這正常工作與上面的功能,但例如爲QString添加時它不承認我的dll,並引發dllNotFoundException。
然後,我想也許你需要某種包裝,是的,你怎麼做,然後..?用google搜索,但沒有真正幫助我用c + +和qt函數。
如何創建一個dll和一個c-wrapper或創建一個COM組件直接一步一步就會很棒,我並不在意它是如何完成的,但如果你知道一個方法,請幫助我一個小教程?我要瘋了...
'QString'是'QT'框架獨有的。你將不得不寫w包裝接近轉換'QString'類到一個正常的'字符串' – 2012-07-31 16:43:16
@Rambound你能幫助我們如何做到這一點?我的意思是包裝,如何將QString轉換爲char *應該不是問題。 – 2012-08-01 11:46:08