当C#调用C++的dll时当心string
C#方面string可能是ansi也可能是unicode因此假如是ansi你尽可能使用byte[]或者IntPtr来代替使用。
C++用LPWSTR进行数据类型映射,此时C#是ansi就可能出现bug。
尽量使用明确尺寸的数据类型。
今天使用CryptoPP时发现的。
本文揭示了在C#调用C++ dll时,由于string类型的不一致可能导致的bug,并提供了使用byte[]或IntPtr替代的方法以避免此类问题。通过明确尺寸的数据类型使用,可以确保跨语言调用的稳定性和兼容性。
当C#调用C++的dll时当心string
C#方面string可能是ansi也可能是unicode因此假如是ansi你尽可能使用byte[]或者IntPtr来代替使用。
C++用LPWSTR进行数据类型映射,此时C#是ansi就可能出现bug。
尽量使用明确尺寸的数据类型。
今天使用CryptoPP时发现的。
644
792

被折叠的 条评论
为什么被折叠?