2
데이터 도착시 다른 함수를 호출하기 위해 아래 함수를 사용하려고합니다. C++ 함수는 내 함수가 호출 될 새 스레드를 만듭니다. 그것은 몇 초 동안 작동하지만 다음 오류가 발생합니다 : Unhandled exception at 0x7725158e in threadTest.exe: 0xC0000005: Access violation.
Pinvoke C# : 위임 된 함수가 충돌을 일으킴
(i "가이 오류를보고 관리되지 않는 코드 디버깅을 사용"설정 한) 나는 모든 것이 잘 작동 위임 된 기능에서 IntPtr frameData
을 제거하면, 그러므로 나는 이 일이 발생하지 않도록 대리인 클래스의 선언에해야 할 일이 있다고 의심하십시오.
C# 코드 :이 그냥 호출 규칙의 문제가 예상
public delegate void HandlerFunction(IntPtr frameData);
[DllImport("Cortex_SDK.dll")]
public extern static int Cortex_SetDataHandlerFunc(HandlerFunction function);
-----
public class myClass
{
static HandlerFunction myFunction = new HandlerFunction(threadFunction);
public myClass()
{
Cortex.Cortex_SetDataHandlerFunc(myFunction);
}
private static void threadFunction(IntPtr FrameData)
{
}
}
네, 트릭을하는 것처럼 보였습니다. 고마워요! – Tistatos
@Tistatos 작동되었음을 알려 주셔서 감사합니다! –
나는 같은 문제가 있지만'cdecl'과'stdcall'을 이해할 수 없다. 설명해 주시겠습니까? – STF