안녕하세요. C# 개발자인데 델파이 DLL을 적용시켜야 하는데 
막히는 부분이 있어서 질문드립니다.


2주 전에 질문글 올렸는데 해결이 안되서요..


지난글 

http://gall.dcinside.com/board/view/?id=programming&no=497758&page=1&search_pos=&s_type=search_all&s_keyword=dll



dll에서 써야하는 함수 인자가 string이고 return type이 integer입니다.

dll과 같이 온 문서에는 아래와 같이 정의 되어 있습니다.

function A(exe_path : string) : integer;
  - exe_path : 실행파일 의 전체경로
  - return : -1 or 0


c#에서 해당 함수를 쓰려고 string으로 인자를 줘서 호출해봤는데

[DllImport("Dio_dll.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
public static unsafe extern int A( string path);
string path = "C:\\ ... \\aaa.exe";
int ret = A(path)

"보호된 메모리를 읽거나 쓰려고 했습니다. 대부분 이러한 경우는 다른 메모리가 손상되었음을 나타냅니다." 
라는 에러가 발생합니다.

CallingConvention 을 Cdecl/StdCall 으로 변경해도...
C#에서 string을 stringbuilder로 해도 같은 에러가 발생합니다.

혹시 델파이 dll을 생성할 때, build 환경에 관한 문의를 해야하는지
아니면 C#쪽에서 import 할때 다르게 해야하는지 잘 모르겠네요

도움 부탁드립니다.