aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 11818|回复: 3

DLL 数据类型搭配,请求指教!

[复制链接]

5

主题

7

回帖

122

积分

一级会员

积分
122
发表于 2011-10-19 12:20:50 | 显示全部楼层 |阅读模式
本帖最后由 dianpo_Dong 于 2011-10-19 12:21 编辑

VC++ dll原形如下:
_declspec(dllexport) int savewinrecttobitmap(HWND hWnd,int x,int 一,int px,int py,char* filepath)
aardio 代码如下:

_dll = ..raw.loadDll( $"\b.dll"  )
savetobitmap = _dll.api("savewinrecttobitmap","int&(int hwnd,int x,int y,int px,int py,string filepath)")

总是出内存读写错误!!!!
q请教修改方法:

42

主题

628

回帖

3765

积分

版主

积分
3765
发表于 2011-10-19 12:36:45 | 显示全部楼层
返回值不应当写int &, 写int就可以.
先确认DLL的函数是不是有问题, 看API的声明都是输入参数, 不太可能调用传参过程中会导致内存泄漏.

抓屏你可以参考一下标准库的com.picture.snap()函数的源代码

import com.picture

com.picture.snap(窗口句柄,左坐标,顶坐标,宽,高).Save(
"/抓屏.jpg",窗口句柄,左坐标,顶坐标,宽,高)

5

主题

7

回帖

122

积分

一级会员

积分
122
 楼主| 发表于 2011-10-19 15:59:00 | 显示全部楼层
编程 发表于 2011-10-19 12:36
返回值不应当写int &, 写int就可以.
先确认DLL的函数是不是有问题, 看API的声明都是输入参数, 不太可能调用 ...

即使  函数内部  只有 return 1; 也报同样的错误!

27

主题

648

回帖

4138

积分

超级版主

积分
4138
发表于 2011-10-19 16:12:05 | 显示全部楼层
在 aardio库目录有有DLL的源码范例
SVN 地址:svn://svn.aardio.com/aardio/ide/lib/labs/.dllplug源代码

$"\b.dll" 这样写使用了内存加载DLL,
那么在编译DLL的时候必须设置为静态链接,否则会报内存错误。
在帮助文档中有相关内容:
http://www.aardio.com/zh-cn/doc/ ... tin/raw/memdll.html
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-1-19 04:53 , Processed in 0.054844 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表