akirya的专栏
登录
注册
空间
博客
好友
相册
留言
akirya的空间
akirya
北京
16545次访问
上万人气
共 16545次访问
空间: 1712次
博客: 14833次
排名: 144
可用分15732个
万元户
共有可用分15732个
已消耗:7737个
社区年龄:72个月
专家分96364分
☆☆☆☆
共有专家分96364分
共发帖: 67篇
共回复:13645篇
43小时前登陆过
活跃专家
注册时间:2002-7-31
[加为好友]
[关注他/她]
[即时聊天]
[发私信]
akirya的个人资料
所在行业:
计算机软件
社区头衔:
社区专家
个人专长:
灌水
,
C
,
C++
,
软件开发
专家分:
目前总共有100175分
VC/MFC:31451分 C/C++:30856分 扩充话题:18171分
博客:
目前总共有60条评论
访问量:14963
排名:7331
文章数:31条
akirya的好友
myjian
jinjazz
vbspine
xmxoxo
lethe_qy
i_love_pc
jimmy_w
查看全部好友的状态
/
共7好友
akirya 已成为你关注的人。
关闭
你可在“最新动态”中第一时间了解他的近况
6
秒钟后退出
akirya最新动态
昨天
akirya 回复了帖子
`
17:28
akirya 回复了帖子
谈谈你对C++的感觉, 新老手皆可!!
17:23
07月
19
akirya 回复了帖子
`
20:42
akirya 回复了帖子
`
20:39
akirya 回复了帖子
关于声明为const的成员函数的问题
20:36
akirya 回复了帖子
请教文本操作
20:29
akirya 回复了帖子
求救MFC连接的问题
20:19
akirya 回复了帖子
需要VC写一个插件形式的DLL,请高人进来指点一下这个办
19:50
akirya 回复了帖子
选择了C#,专注于WINFORM,才发现原来WEBFORM才是王道。。
19:40
akirya 回复了帖子
迭代器的问题
17:19
akirya 回复了帖子
CListBox如何在最后一行插入内容
17:06
akirya 回复了帖子
#define 的奇怪用法,谁给解释一下
17:02
akirya 回复了帖子
【求助】在网上向北京的公司投简历没有回音的。。。
16:59
akirya 回复了帖子
c++函数指针的疑问
16:58
akirya 回复了帖子
关于mingw的安装问题
16:52
akirya 回复了帖子
谁有vb4.0版本的急需
16:51
akirya 回复了帖子
各位新老朋友,很久没到社区来了,大家过的还好吧?
16:46
akirya 回复了帖子
学习C++之前的基础知识
16:43
akirya 回复了帖子
[赚分] 速结
16:41
akirya 回复了帖子
delphi 读写另外系统的注册表文件
16:33
akirya的留言
yangshuosky
发表于:2008-06-30
Marshal.WriteInt32 是写int32数据类型,请问如果写uint32类型的数据应该怎样写呢?
yangshuosky
发表于:2008-06-28
还有SI_Write的调用,我现在改成了byte[] DataSend = { 2, 125 }; IntPtr p = Marshal.AllocHGlobal(2); Marshal.Copy(DataSend, 0, p, 2);IntPtr intptr = Marshal.AllocHGlobal(2);Marshal.WriteInt32(intptr, 2);SI_Write(m_hUSBDevice,p,2, intptr);也按你说的改为cdecl调用了。还是说不匹配,问题出在哪呢?
yangshuosky
发表于:2008-06-28
我调试看了一下数组的大小,申请的内存大小没问题的。难道真是编码文件dll有问题?那就惨了。我是从网上下载的,感觉不会有问题的啊。调试不是说0x03429b0a指令引用的0x0ead2000内存不能为write吗,有没有办法查看这个指令的内存看具体是什么问题啊?
回复于 2008-07-01
你最好拿到dll的源码调试一下。
yangshuosky
发表于:2008-06-28
非托管内存的申请有大小限制吗?我需要400000字节,是不是超出了?图像压缩前数据量这么大应该没错吧?
回复于 2008-06-28
400000字节应该不大,你得看看说明文档需要多少
yangshuosky
发表于:2008-06-28
我用CallingConvention也不行啊。请问您有其他联系方式吗?老是留言问问题不大能问的清楚。我做课题遇到很多问题实在找不到人请教,所以麻烦您了!
yangshuosky
发表于:2008-06-28
请问(c#中)调用图像压缩的DLL(c++编写)时,需要设置原始图像缓冲区,是不是必须要申请非托管内存啊?intptr outvideodata = Marshal.AllocHGlobal(videonumber*2);Marshal.Copy(buff , 0, outvideodata, videonumber);En_SetCompressIn(outvideodata);//设置原始图像缓冲区En_StartEncoder();//开始压缩。调试总是出现**内存不能为written或者read.怎么回事呢?
回复于 2008-06-28
是得申请非托管内存,出现问题应该是你申请的大小、或者dll的编写有问题。
lei5179
发表于:2008-06-18
请问我下载了进销存管理系统,就是无法安装,能告诉我说什么地方出问题了吗 ?
回复于 2008-06-18
俺天生愚笨猜不出来.
yangshuosky
发表于:2008-06-18
调试时出现错误:对 PInvoke 函数“Client!Client.Form1::SI_Write”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
回复于 2008-06-18
那就是CallingConvention 的问题了,修改调用方式为cdecl
[DllImport(CallingConvention=CallingConvention.Cdecl)]
yangshuosky
发表于:2008-06-14
原型为SI_Write (HANDLE Handle, LPVOID Buffer, DWORD NumBytesToWrite,DWORD *NumBytesWritten)public IntPtr m_hUSBDevice = (IntPtr)INVALID_HANDLE_VALUE;
我写为 SI_Write(IntPtr hPrinter,IntPtr intptr, UInt32 cdBuf, out UInt32 pcWritten);然后
IntPtr intptr = Marshal.AllocHGlobal(2);
Marshal.Copy(DataSend, 0, intptr, 2);
DataSend[0] = 2;
DataSend[1] = 125;
UInt32 bb;
SI_Write(m_hUSBDevice, intptr, 2, out bb)
还是不匹配。请问是哪还不对呢?
回复于 2008-06-17
怎么不匹配? 出现什么错误?
yangshuosky
发表于:2008-06-12
谢谢您回复我的帖子。Marshal是不是申请非托管内存啊?我不大清楚什么时候调用托管内存,什么时候是非托管内存。
ref byte[] pBuf不就是数组的地址吗,还需要IntPtr 吗?
我现在是声明为SI_Write(IntPtr hPrinter,ref byte[] pBuf, UInt32 cdBuf, out UInt32 pcWritten);
与非托管不匹配。请问到底应该怎样声明呢?
回复于 2008-06-13
对于dll中LPVOID类型的指针,你就得申请非托管的内存拷贝数据过去.
就按照我回复帖子中的声明方法声明即可.
给akirya的留言