今、助けが必要です。誰かが私のC#アプリケーションで動作するように私のQTベースのコードを「転送」するのを手伝ってくれるといいのですが。
私がこの単純なQTクラスを持っているとしましょう:
class ItShouldWork : public QObject
{
Q_OBJECT
public:
ItShouldWork(QObject* parent = 0) : QObject(parent){}
QString id() const { return objectName(); }
};
Visual Studio C#でこのクラスにアクセスできるようにしたいので、アンマネージdllを作成してラッパーを介してアクセスし、COMコンポーネントを作成しようとしましたが、今は完全にスタックしているため、に戻ります。この単純なクラスから始まります。次のように__declspec(dllexport)でextern"C"を使用できることを確認しました。
extern "C" __declspec(dllexport) double Subtract(double a, double b)
次に、.netで_dllImportを使用します。これは上記の関数で正常に機能しますが、たとえばQStringを追加すると、dllが認識されなくなり、dllNotFoundExceptionがスローされます。
それから私は多分あなたが何かの種類のラッパーが必要だと思いました、ええ、そしてあなたはそれをどのように行うのですか..?グーグルで離れましたが、c++とqtの関数で本当に役立つものは何もありません。
dllとc-wrapperを作成する方法、またはCOMコンポーネントdllを直接作成する方法を少しずつ説明します。どのように実行するかはあまり気にしませんが、方法を知っている場合は、小さなチュートリアルを手伝ってください。私はおかしくなりそうだ...