정말 잘못하고 있는지 잘 모르겠습니다. C#에서 C로 작성된 문자열에 문자열을 전달하는 중입니다. 그 이유는 문자열이 C DLL에서 NULL로 나오기 때문입니다. 내가 뭘 잘못하고 있는지 알 겠어?관리되지 않는 C 드라이버 (dll)를 호출하는 C#
C :
extern __declspec(dllexport) void Cmd(long CmdType,long DataPar, const char *DataStr);
void Cmd(long CmdType,long DataPar,const char *DataStr)
{
// DataStr is NULL here even when passing a string with data in it
}
C 번호 :
[DllImport(@"pjsua-i386-Win32-vc8-Debug.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static extern void Cmd(long CmdType, long DataPar,[MarshalAs(UnmanagedType.LPStr)]String s);
Cmd(1,0,"TEST");
는 또한 IntPtr입니다 같은 다른 것들을 시도하고 문자열을 통해 마샬링하지만 모두 NULL과 같은 밝혀했습니다. 그리고 다른 것들도.
감사합니다 :) – user1499190