调用C的dll函数,传英文时没问题,但是一旦有中文就报错,
错误信息是:"传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)"
dll中C代码__declspec(dllexport) int __stdcall TestStringArray(char** key, char** value, int len)
{
return 1;
}
[DllImport("Test.dll")]
public static extern bool TestStringArray(String[] key, String[] value, int len);
        //winform程序,在窗体加载事件中测试
        private void UlsiForm_Load(object sender, EventArgs e)
        {
            int count = 2;
            string[] keys,values;
            keys = new string[count];
            keys[0] = "中文测试";//现这里错误,如果改为英文就没问题了
            keys[1] = "bbbbbb";
            values = new string[count];
            values[0] = "111111";
            values[1] = "222222";
            bool isOK = UlsiDll.TestStringArray(keys, values, count);
        }