2
그래서 일부 C# 코드에서 dll로 C++ 네이티브 함수를 실행하려고합니다. 그리고 그것은 잘 작동하지만 내 함수 호출에서 'out'을 사용할 때 메모리 액세스 위반이 발생합니다. 이것은 모습입니다 같은 :C#에서 네이티브 C++ 코드를 호출하여 매개 변수를 사용하지 않음
C#을 기능 나는이 문제를 강조하는 코드를 최소화했습니다
EXTERN_DLL_EXPORT b2Fixture* __stdcall AddTriangleFixtuers(ShapeDef shapeDef, IntPtr* toBody, b2Vec2* vertices, int triangleCount, b2Vec3 row1, b2Vec3 row2, int& fixtureCount) {
fixtureCount = 0;
b2Fixture* lastFixture = NULL;
return lastFixture;
}
[DllImport(pluginName)]
public static extern IntPtr AddTriangleFixtuers(ShapeDef shapeDef, IntPtr toBody, ref Vector2 vertices, int triangleCount, Vector3 row1, Vector3 row2, out int fixtureCount);
...
int test = 1;
B2D.AddTriangleFixtuers(def, body.body, ref shapeTriangles[0], shapeTriangles.Length/3, firstRow, secondRow, out test);
C++ 함수를 내가 나는 뛰어 다니고있어. C++ 코드에서 fixtureCount를 설정하려고하면 다음 오류가 발생합니다.
P/Invoke 정의 ('[DllImport]'등)도 추가해야합니다. – Luaan
죄송합니다, 그 정의를 보여주는 걸 잊었습니다. 지금 질문을 수정했습니다. – Enzign
아마 중복 : stackoverflow.com/questions/26992178/c-sharp-dllimport-with-pointers – Maher