나는 미쳐 갈 것입니다.DLLImport get 보호 된 메모리를 읽거나 쓰려고 시도했습니다.
I는이 기능, DLL을 가지고
function MyFunc(myId: integer; var LstCB: array of char): integer; stdcall;
첫번째 파라미터는 불량한 정수이다.
[DllImport(@"MyDll.dll", EntryPoint = "MyFunc", CallingConvention = CallingConvention.StdCall)]
internal static extern int MyFunc(int myId, string list);
내가 얻을 :
Attempted to read or write protected memory. This is often an indication that other memory has been corrupted.
당신에게 몇 가지를 가지고 그러나 두 번째는 문자 내가 같이 DllImport와이 수입이
('9', #13, #10, '8', '8', '8', '8', '0', '0', '0', '0', '0', '0', '0', '0', '2', '5', '0', '7', #13, #10, '8', '8', '8', '8', '0', '0', '0', '0', '0', '0', '0', '0', '2', '6', '0', #13, #10, '8', '8', '8', '8', '0', '0', '0', '0', '0', '0', '0', '0', '3', '3', '1', '5', #13, #10, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0,....#0)
같은가 someting를 얻을 수 [2048]입니다 아이디어 제발 ???
감사합니다.
이 작업이 실패하는 이유는 스택의 불균형 때문입니다. "array of char"(array.Length 바이트)의 크기는 C# 문자열 포인터 (4/8 바이트)와 같지 않으므로 매개 변수가 스택을 오염시키고 정의되지 않은 동작을 발생시킵니다. – Polynomial
고마워, 너 너무 많이, 나는 이것을 시도 할 것이다. – Tkanos