質問

ご挨拶、

:私は悩まのため申し訳ありませんが、私は質問を紹介します

私は、Visual Studio上で実行されているC#アプリケーションでそれらをインポートするために、DLL内のC ++で書かれたいくつかの関数をエクスポートしようとしています。 次のコードで報告されているように、私は、輸出を作る

tobeexported.hます:

namespace SOMENAMESPACE
{
                class __declspec(dllexport) SOMECLASS
                {
                               public: 
                               SOMETYPE func(param A,char b[tot]);

                };
}

tobeexported.cppます:

#include "stdafx.h"
#include "tobeexported.h"
...


using namespace SOMENAMESPACE;

SOMETYPE SOMECLASS:: func(param A,char b[tot])
                {
                               ...some stuff inside...
                }

DLLがrighly作成され、コードは既にCLR管理(分解ソフトウェア(リフレクタ)で見て)で、エクスポートされた関数が含まれています  その後、私は私のC#アプリケーションで、「参照の追加」とDLLが見つかりましたが、とき

私はそれが完全に空にされたオブジェクトブラウザで開き、どちらのクラス、またオブジェクトがエクスポートされていると準備を使用します

あなたは私を助けてくださいことができますか? 感謝 よろしく

役に立ちましたか?

解決

どのようなあなたのDLLをコンパイルするために管理C ++を使用してはどうですか?次に、あなただけの、このようなクラスに参照を追加する必要があります:

namespace SOMENAMESPACE
{
                public ref class SOMECLASS
                {
                               public: 
                               SOMETYPE func(param A,char b[tot]);

                };
}

他のプロジェクトで成功したコンパイルと参照した後、クラスが表示されるはずです。ネイティブC ++をエクスポートすると、各コンパイラは、C#...

の中から異なる結果を生成し、バインドに退屈で、本当にポータブルではありません

EDITは:refクラスにパブリックアクセス修飾子を追加...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top