참조
원출처
http://blog.naver.com/just720?Redirect=Log&logNo=40137298010
IntPtr 구조체 (MSDN)
https://msdn.microsoft.com/ko-kr/library/system.intptr(v=vs.110).aspx
BSTR 정의 (MSDN)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms221069(v=vs.85).aspx
C#에서는 IntPtr구조체로 정의해야 한다.
즉, 문자열을 포인터 값으로 파라미터를 정의해서 넘겨주는 것으로
참조하는 DLL의 함수에서는
BSTR로 파라미터를 정의한다.
BSTR은 OLECHAR* 로 정의되어있는데
COM 오브젝트간의 문자전송 규약인것 같다.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<C# 코드>
===== 선언부 =====
[DllImport("KnvRecog.dll")]
public static extern void SetInit(IntPtr _argv);
===== 실제 코드 =====
IntPtr _IntPtr = Marshal.StringToBSTR("testString");
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<C++ DLL 코드>
DLL_extern "C" __declspec(dllexport) void SetInit(BSTR _argv)
{
CString argv;
argv.Format(_T("%s"), _argv);
}
이렇게 C#에서 C++ (DLL)로 CString을 전달할 수 있다.
'C#' 카테고리의 다른 글
C#에서 서비스 프로그램 만들기 (MSDN 수정 - 쓰레드 기반) (0) | 2016.02.26 |
---|---|
C# 모니터 해상도 구하기 (0) | 2016.02.16 |
System.Web 등록하기 (HttpUtility 사용시) (0) | 2016.02.15 |
C#에서 서비스 프로그램 만들기 (0) | 2016.02.12 |
비주얼 스튜디오 2013에서 C#프로그램 관리자 권한으로 실행시키기 (0) | 2015.10.28 |