读书人

C# 调用C++ DLL编码有关问题

发布时间: 2012-10-12 10:17:04 作者: rapoo

C# 调用C++ DLL编码问题

今天用C#调用C++写的一个DLL

?

死活不成功

?

而我在c++里面测试一点问题没有。

?

搞了一天终于debug出来了,

?

在C#里面传给DLL函数一个文件路径找不到,

?

后来经过断点调试发现 最后一个参数 DBFilename 在DLL里面找不到文件

?

        [DllImport(_DLLFileName, EntryPoint = "?getFeatureByUid@CmobileDetect@@QAEHHPAEPB_W@Z", CallingConvention = CallingConvention.ThisCall)]        private static extern int __getFeatureByUid(__FDSdll* p, int uid, byte[] feature, string DBFileName);

无奈N久,搜百度,找Google 也没到原因所在,无奈MSDN看参数列表说明。

?

一个个测试,最终发现添加一个“?CharSet = CharSet.Unicode” 大功告成

?

   ?[DllImport(_DLLFileName,    EntryPoint = "?getFeatureByUid@CmobileDetect@@QAEHHPAEPB_W@Z",     CallingConvention = CallingConvention.ThisCall,    CharSet = CharSet.Unicode)]    ?

读书人网 >C++

热点推荐