当前位置:编程学习 > C#/ASP.NET >>

C++中声明的int nDevAddr=0xffffffff;在C#中怎么声明

要调用C++的API
int ZAZGetImage(HANDLE hHandle,int nAddr);
nAddr 是常量声明为 0xffffffff;在C#调用如下:
[DllImport("ZAZAPIt.dll")]
        public unsafe static extern int ZAZGetImage(IntPtr pHandle, int nAddr);

请问 在C#中nAddr 这个常量该为多少?
是设置为0吗? --------------------编程问答-------------------- uint nAddr = 0xffffffff; --------------------编程问答--------------------
引用楼主 yangzhijia123 的回复:
要调用C++的API
int ZAZGetImage(HANDLE hHandle,int nAddr);
nAddr 是常量声明为 0xffffffff;在C#调用如下:
[DllImport("ZAZAPIt.dll")]
  public unsafe static extern int ZAZGetImage(IntPtr pHandle, int nAddr);

请问 在C……

因为C++函数指定了类型是int 如果声明uint的话需要转换成int类型会报溢出错误。

而且这个api所有函数中有int nAddr 都声明为常量的0xffffffff 不知道为什么? --------------------编程问答--------------------
引用 2 楼 yangzhijia123 的回复:
引用楼主 yangzhijia123 的回复:
要调用C++的API
int ZAZGetImage(HANDLE hHandle,int nAddr);
nAddr 是常量声明为 0xffffffff;在C#调用如下:
[DllImport("ZAZAPIt.dll")]
public unsafe static extern int ZAZGetImage(IntPtr pHandl……

那你传 -1 看看。 --------------------编程问答-------------------- 楼主,C++和C#的int 类型值范围区间一样,不需要改变,

const int nAddr = 0xffffffff;

有问题吗? --------------------编程问答--------------------
引用 4 楼 sdl2005lyx 的回复:
楼主,C++和C#的int 类型值范围区间一样,不需要改变,

const int nAddr = 0xffffffff;

有问题吗?

这样声明编译通不过的。 --------------------编程问答--------------------
引用 3 楼 caozhy 的回复:
那你传 -1

或者改声明:
[DllImport("ZAZAPIt.dll")]
public static extern int ZAZGetImage(IntPtr pHandle, uint nAddr);

或者unchecked:
int nAddr = unchecked((int)0xffffffff);

--------------------编程问答--------------------
引用 6 楼 gomoku 的回复:
引用 3 楼 caozhy 的回复:
那你传 -1

或者改声明:
[DllImport("ZAZAPIt.dll")]
public static extern int ZAZGetImage(IntPtr pHandle, uint nAddr);

或者unchecked:
int nAddr = unchecked((int)0xffffffff);


按照int nAddr = unchecked((int)0xffffffff); 得到的是-1 编译通过。但是函数返回值是错误的。
不知道在C++中声明int 0xffffffff参数的作用是什么? 如何用-1传过去跟0xffffffff作用是一样的吗? --------------------编程问答-------------------- 改声明:
[DllImport("ZAZAPIt.dll")]
public static extern int ZAZGetImage(IntPtr pHandle, uint nAddr);
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,