请问C#调用C++编写的DLL时,函数SI_Write (HANDLE Handle, LPVOID Buffer, DWORD NumBytesToWrite,DWORD *NumBytesWritten)应该怎样调用啊?我这样:[DllImport("SiUSBXp.dll", SetLastError = true, EntryPoint = "SI_Write", CharSet = CharSet.Ansi)]
public static extern int SI_Write(ref IntPtr hPrinter,ref byte[] pBuf, UInt32 cdBuf, ref UInt32 pcWritten);是不是不对的?
public static extern int SI_Write(ref IntPtr hPrinter,ref byte[] pBuf, UInt32 cdBuf, ref UInt32 pcWritten);是不是不对的?
解决方案 »
- 程序打包问题,高手快来啊。。
- FormView中放GridView,GridView无法编辑
- c#的正则,如果表达式太长的话,真是慢的厉害
- 如何判断一个页面是否执行了跳转命令
- 求详细的C# 根据链接地址 实现文件下载实例
- 不难不易的gdi+作图问题,关于metafile画线,50分,全押了!
- C#中关于验证码的问题
- 求助.net无法签入修改的文件,而签出的文件变为灰红色?
- 这么问题杂没人回复我啊.是不是太简单了
- C#写的程序出问题了,程序自动退出,系统日志里面提示.Net RunTime
- C#操作Excel Copy工作表到另一个Excel中
- C# 访问Properties.Resources的资源
你可能还需要Marshal的相关方法得到这个值
我声明的ref byte[] pBuf其实不就是数组的地址吗?这样不可以吗?
我现在是声明为SI_Write(IntPtr hPrinter,ref byte[] pBuf, UInt32 cdBuf, out UInt32 pcWritten);还是不行。
请帮帮忙啊,到底应该怎样声明呢?
我声明的ref byte[] pBuf其实不就是数组的地址吗?这样不可以吗?
我现在是声明为SI_Write(IntPtr hPrinter,ref byte[] pBuf, UInt32 cdBuf, out UInt32 pcWritten);还是不行。
请帮帮忙啊,到底应该怎样声明呢?
我声明的ref byte[] pBuf其实不就是数组的地址吗?这样不可以吗?
我现在是声明为SI_Write(IntPtr hPrinter,ref byte[] pBuf, UInt32 cdBuf, out UInt32 pcWritten);还是不行。
请帮帮忙啊,到底应该怎样声明呢?
EntryPoint 不是用别名的时候才有必要设置的吗?