Saturday, November 1, 2014

C# C++ char* 문자열 전달하기

C++ 함수가 다음과 같은 것이 있고, MBCS 문자열 인코딩을 사용할 때
void encoding_test(const char* pstr);

다음과 같이 C#에서 작성하면 char* 형으로 문자열을 전달할 수 있다.

        unsafe private sbyte[] get_sbyte_string(string s)
        {
// 51949는 EUC-KR이다.
            byte[] b2 = Encoding.GetEncoding(51949).GetBytes(s);
            sbyte[] sb = (sbyte[])((Array)b2);
            for (int i = 0; i < sb.Length; i++)
            {
                Console.WriteLine(sb[i]);
            }
            return sb;
        }

            string s = "하이";
            unsafe
            {
                fixed (sbyte* psb = get_sbyte_string(s))
                {
                    encoding_test(psb);
                }
            }


No comments:

Post a Comment