C#调用DLL,DLL中的unsigned char*该转换成什么类型?
现在要调用别人写的DLL,只知道原型为
int __declspec(dllimport) __stdcall GetImage(unsigned char *pImage);
int __declspec(dllimport) __stdcall DisplayBMP (unsigned char *pImage);
只知道返回的pImage实际上是一个BMP图像的指针。
我在C#作如下封装:
[DllImport("mySDK.dll",EntryPoint="GetImage")]
public static extern int GetImage(StringBuilder pImage);
[DllImport("mySDK.dll",EntryPoint="DisplayBMP ")]
public static extern int DisplayBMP (StringBuilder pImage);
在VC中调用DLL是很正常的,但发现在C#中调用却显示的图像有问题,估计是返回的pIamge内容有问题,请问在C#中该怎样封装unsigned char*类型?
问题点数:20、回复次数:2Top
1 楼zhy0101(莠)回复于 2006-02-03 19:41:37 得分 20
应该是byte[]
MSDN上unsigned char 对应的是byte,所以unsigned char*就应该是byte数组
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconplatforminvokedatatypes.aspTop
2 楼fsxdxh(假行僧)回复于 2006-02-04 13:45:42 得分 0
感谢zhy0101(香蕉) ,问题已经解决。
Top
相关问题
- 谁知道C++中的unsigned char类型等同于C#的什么类型?
- C#调用C编的dll时的参数传递问题(char **temp)
- C#里如何调用dll里的extern "C" _declspec(dllexport) void MyStr(char* strTest)函数?
- 调c的dll!
- typedef unsigned char UCHAR;
- C# Dll 问题
- c # 调用 DLL中 char * 中文无法正确显示的问题
- 原型为int _stdcall omrg(char * buf)的非托管DLL在C#里怎么调用?
- 请教:急!!!调用其他语言写的dll function unsigned shot WINAPI test(int cs,unsigned char *out)
- (char *)或char temp[] 转unsigned short




