首页
社区
课程
招聘
[求助]求助变量类型
发表于: 2010-3-12 14:13 3452

[求助]求助变量类型

2010-3-12 14:13
3452
我用汇编写了一个DLL,Makefile中指明了.bss有S属性。
然后用在BCB中调用这个DLL里的一个函数,函数返回一个指针。也就是说,返回是eax == offset _mysting。因为dll设置了数据共享,我想,这个地址作为导出函数的返回值返回给BCB的这个程序,然后就可以通过这个地址调用MessageBox来显示里面的字符串了。

但是实际却出现问题。

eax是32位,返回的值和DWORD长度相同。但是我如果用DWORD来接收导出函数的返回值,就不会在MessageBox中调用了。

  (不知道这里应该是什么变量类型)p = (lpProcAdd)(NULL,NULL); //这个是导出函数,返回一个字符串起始地址       

::MessageBox(NULL,p,p,NULL); //MessageBox函数在汇编中,直接将中间两个参数设置为字符串起始地址就可以。但是我在BCB中放入一个DWORD类型的变量貌似是不行的,不知道怎么办了。

总之最终想让MessageBox能弹出DLL中导出函数返回的字符串起始位置开始的字符串。

谢谢大家。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 656
活跃值: (448)
能力值: ( LV12,RANK:360 )
在线值:
发帖
回帖
粉丝
2
OD调试一下不就知道 了
2010-3-12 15:42
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
既然那个dll函数返回的是一个字符串类型,那你在BCB中就可以定义一个char *类型的变量保存这个函数的返回值。再用MessageBox调用就行了。
2010-3-12 17:26
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
字符串地址不是局部变量吧
2010-3-12 19:55
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
已经解决了。

AnsiString str = (lpProcAdd)(NULL,NULL);
2010-3-12 19:59
0
游客
登录 | 注册 方可回帖
返回
//