Creative Commons License

Community

공지/뉴스
지식공유
질문/답변
자료실
자유로운 글
방명록

공유를 넘어 교류로... 제가 알리는 말씀 및 사이트 이용자들이 함게 참여하는 커뮤니케이션 공간입니다.

.

질문/답변

개발 중 막히셨나요?? 여기 먼저 경험한 개발자들의 답변을 부탁드려보세요~ 단, 질문의 내용은 되도록이면 아주(?) 상세히 해 주셔야 합니다

MFC char * 및 CString 로 변환하려면 어떻게 해야하나요?

작성자 공간
작성일 2010-10-18 오후 7:18:43,    조회수 : 4573

C#에서 MFC에서 만든 라이브러리 사용하고 있습니다. lib->CLR 클래스 만들어셔 Using에 등록하여 사용하고 있구요.
 
test(char * ServerName, char * DbName, char * UserName, char * UserPassword) MFC 라이브러리 함수입니다.
 
C#에서 string으로 인자 4개를 넣으니 에러가 나더라구요.
 
string에서 sbyte*로 변환을 못한다고 에러가 발생합니다.
 
이럴때는 string을 어떻게 변환해야 하나요?

그리고 두 번째 입니다.

string에서 MFC 라이브러리 CString로 변환하려고 합니다.

C#에서는 CString이 지원되지 않는 형식이라고 하네요.

이럴때는 어떻게 해야 하나요?

 

∵Commented by 박종명 at 2010-10-19 오후 12:20:50  
string 을 바이트배열로 변환해서 전달해 보세요<br>그리고 CString 은 MFC의 클래스 아니던가요? 다른 플랫폼에 정의된 데이터타입이 <br>지원될리 없습니다. Char*로 받으셔서 CString로 변환하는건 어떤가요?<br><br>참고하세요<br>http://www.codeguru.com/forum/showthread.php?t=354197
∵Commented by 정성욱 at 2010-10-19 오후 8:06:34  
C#에서 string으로 넣으려고 할때 char *로 변환해서 MFC 라이브러리로 넣으려고 합니다.<br>제가 dll로드 방식이 아니고 C++/CLR을 사용했습니다. CLR에서 형변환 하는 방법 혹시 없나요?
∵Commented by 박종명 at 2010-10-20 오후 3:54:20  
IntPtr구조체와 과 Marshal클래스 부분을 살펴 보시기 바랍니다<br>참고)<br>System.IntPtr ptr = Marshal.StringToHGlobalUni("홍길동"); <br>string result = Marshal.PtrToStringAuto(ptr);<br><br>꼭 C#이 아니라, MFC 의 부분을 같이 변화시켜 문제를 해결할 수는 없는지요<br><br>그리고 반대되는 상황인 것 같지만 아래 글 확인해 보세요<br>http://www.tipssoft.com/bulletin/board.php?bo_table=QnA&wr_id=12274&sfl=&stx=&sst=wr_hit&sod=asc&sop=and&page=424
이름
비밀번호
홈페이지
KK <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요