主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.07.01;
下载:[xml.tar.bz2];

向下

TBitMap - 在dll中 找到类似的分支


d_oleg   (2002-06-18 10:45) [0]

请告诉我如何将TBitMap类型的对象传递给dll? 我将指针传递给可以简化为的结构
TType =记录
描述:ShortString;
图:TBitMap
结束;
之后,访问Pic时,会抛出一个无效的BitMap错误。



Skier   (2002-06-18 11:52) [1]

> d_oleg

有可能:

TType =记录
描述:PChar;
图片:指针
结束;
PType = ^ TType

VAR
AType:PType;
............
开始
..........
AType:= AllocMem(SizeOf(TType));
AType ^ .Description:= PChar(“PictureName”);
AType ^ .Pic:= //创建一个位图
PassBitMap(AType); //来自DLL的PassBitMap过程
............... //你击败了位图
FreeMem(AType,SizeOf(TType));
..........
结束;

在您声明的DLL中 - PassBitMap(APicPtr:Pointer); ............;
在PassBitMap中,您在PType上转换APicPtr并拉出位图



d_oleg   (2002-06-18 12:26) [2]

好吧,我正在做那样的事情。 他们告诉我,这根本不是位图。



Skier   (2002-06-18 12:35) [3]

> d_oleg
向PassBitMap对应方展示挑战
并展示如何使用PassBitMap正文中的记录。
通常,您需要一些代码来进行交谈
更实质性的。



d_oleg   (2002-06-18 12:55) [4]

这是一种类型:
TExtDll =记录
DllName:ShortString;
文字说明:ShortString;
提示:ShortString;
图标:TBitMap;
结束;
TExtDlls =记录
ExtDll:TExtDll;
NextDll:指针;
结束;
pExtDlls = ^ TExtDlls;

VAR
ExtDlls:pExtDlls;

我将指针传递给dll,然后在dll中我转向ExtDlls ^ .ExtDll.Icon - 我得到了面子



Skier   (2002-06-18 13:17) [5]

像这样重写它:

TExtDll =打包记录
DllName:PChar;
图片说明:PChar;
提示:PChar;
图标:指针;
结束; // TExtDll
PExtDll = ^ TExtDll;

TExtDlls =打包记录
ExtDll:指针;
NextDll:指针;
结束;
PExtDlls = ^ TExtDlls;

VAR
ExtDlls:PExtDlls;

再次在DLL中声明TExtDlls,TExtDll和指针
在它们上面PExtDlls = ^ TExtDlls,PExtDll = ^ TExtDll

在调用DLL过程时,您会这样做

VAR
AExtDll:PExtDll;
AExtDlls:PExtDlls;
开始
AExtDll:= AllocMem(SizeOf(TExtDll));
AExtDlls:= AllocMem(SizeOf(TExtDlls));
AExtDll ^ .Icon:= TBitmap.Create;
AExtDlls ^ .ExtDll:= AExtDll;
//根据需要进一步填充结构
//调用你的DLL程序
//免费TBitmap
//免费的AExtDll和AExtDlls
结束;


DLL程序

PassBitmap(APicPtr:Pointer); STDCALL;
开始
如果APicPtr = nil则退出;
与PExtDlls(APicPtr)^确实开始
如果ExtDll = nil则退出;
用PExtDll(ExtDll)^开始
如果Icon = nil则退出;
用TBitmap(Icon)开始吧
//将Icon处理代码放在这里
结束; //用
结束; //用
结束; //用
结束;


未来的提示:将字符串传输到DLL时,请使用PChar!



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.07.01;
下载:[xml.tar.bz2];

楼上









内存:0.57 MB
时间:0.054 c
7-1229
YURIY_K
2002-04-05 09:09
2002.07.01
如何找出程序包含的内容?


14-1213
Oleon的
2002-05-28 12:59
2002.07.01
四舍五入的问题。


3-858
VictorT
2002-06-06 11:02
2002.07.01
主键


14-1151
瓦尔
2002-05-28 19:11
2002.07.01
用C / C ++打开数组


3-911
NNH
2002-06-06 21:36
2002.07.01
DBTChart





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский