2016-04-07 21 views
1

C#から次の関数を呼び出そうとしています。 私が近づいいくつかを試してみましたが、私はこれは.Hからの輸出はこれが現時点での私の(動作しない)コードであるCからdll関数の呼び出しでクラッシュする#

LPCTSTR _EXPORT_ GetString(LPCTSTR Name,int far *errCode); 

ファイルである

それを呼び出すとき、それは常にクラッシュ:

[DllImport("External.DLL", CharSet = CharSet.Unicode)] 
private static extern string GetString(string VarName, out int ErrorCode); 

public string GetStringW(string VarName, out int ErrorCode) 
{ 
    return GetString(VarName, out ErrorCode); 
} 
+0

'LPCTSTR'はC#文字列ではありません。 – PaulMcKenzie

+0

C++のa *はポインタを意味します。ここを見て - > http://stackoverflow.com/questions/23325668/call-to-external-dll-from-c-sharp-with-integer-pointer –

+0

私はrefのInt32 ErrorCodeで試しましたが、それでもクラッシュします –

答えて

0

問題は戻り値パラメータであり、それをintptrに変更して問題を解決しました。

関連する問題