2012-03-16 8 views
2

dllexportを使用して関数をエクスポートします。しかし、コンパイラ "エラーC4439: 'WrappedC':署名の管理された型を持つ関数定義には__clrcall呼び出し規約が必要です」というエラーが発生しました。dllexportを使用しているときのエラー?

ヘッダファイル(.H)での私のコードは次のとおりです。私は、インターネットが、私には検索しました

error C3395: 'WrappedC' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention 

extern "C" 
{ 

__declspec(dllexport) int __stdcall ABC(int i); 
__declspec(dllexport) char* __stdcall C(int i); 
__declspec(dllexport) array<char>^ __stdcall WrappedC(int i) ; 

} 

は私が__clrcallする_stdcallを変更しようとしましたが、それは別のエラーを作りますそれをまだ解決していない。

おかげで、

T & TGroup

答えて

1

は、コンパイラは、すでにかなりの問題が何であるかを語っています。

__declspec(dllexport)配列^ __stdcall WrappedC(int i)。その関数がclrを使用しているため、__declspec(dllexport)は使用できません。

配列^はネイティブコードではないと言っている部分です。

+0

ありがとう、しかしそれを解決する方法。 – TTGroup

+1

おっと!私は何かを忘れていることを知っていた。関数をpublicとして宣言することはできますが、アンマネージプログラムではその関数を使用することはできません。 – Aleks

+1

@Aleks実際には、それはちょうど非常にハッキーなものが関係しており、ラッパーdllを作る方がはるかに簡単です。 – Avery3R

関連する問題