안녕하세요 선배님들
제목과 같이 C 프로젝트로 생성한 dll import 시 함수에 있는 char* argument 처리에 대해서 궁금한게 있어서 글 올렸습니다.
예를들어서 아래와 같이 선언 후
ex)
원본함수 -> int test(int* sockfd, char* pData, int flag)
[DllImport(@"***.dll")]
public unsafe static extern int test(int *sockfd, [MarshalAs(UnmanagedType.LPStr)] string pData, int flag);
위와같이 마샬링을 한 후 argument를 받는 방법이 있어서 적용결과
처리되지 않은 'System.AccessViolationException' 형식의 예외가
xxx에서 발생했습니다.
추가정보 : 보호된 메모리를 일걱나 쓰려고 했습니다. 대부분 이러한 경우는 다른 메모리가 손상되었음을 나타냅니다.
라는 오류가 발생했습니다.
빌드 구성관리자로 x64 (64비트) 환경까지 맞춰주었는데,
무엇이 문제일까요? 조언 부탁드리겠습니다.