2016-04-07 23 views
1

Aşağıdaki işlevi C# dan çağırmaya çalışıyorum. Birkaç yaklaştı denedik ama her zaman ben bu .h ihracat Bu anda benim (çalışmıyor) kodudurC++ dll işlevini çağırırken kilitlenme C#

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

File olduğunu bunu

çağırdığınızda çöküyor:

[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

Bir 'LPCTSTR' bir C# dizesi değil. – PaulMcKenzie

+0

a * 'da C++ işareti işaretçisidir. Buraya bir göz atın -> http://stackoverflow.com/questions/23325668/call-to-external-dll-from-c-sharp-with-integer-pointer –

+0

Int32 ErrorCode ile denedim ancak hala –

cevap

0

Sorun döndürme parametresiydi, intptr olarak değiştirildi, bu sorun çözüldü sorunu çözüldü