开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 40643|回复: 7
收起左侧

[已解决] 来个VC++高手,如何用VC++调用易写的DLL返回数据,谢谢

 关闭 [复制链接]
结帖率:91% (10/11)
发表于 2018-7-29 15:38:26 | 显示全部楼层 |阅读模式   广东省东莞市
300精币
如何用VC++调用易写的DLL返回参数,在不改变DLL的源码前提下.用VC++愉快的取到数据,显示到组件或写到TXT就可以!!谢谢用易语言倒时很轻松搞掂,里面有 DLL的源码和调用例子.就是不知VC++如何写调用!!
本人不太会VC++.难死了!!

jdfw.gif
易的调方式.rar (33.89 KB, 下载次数: 25)

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

签到天数: 12 天

发表于 2018-7-29 15:38:27 | 显示全部楼层   河南省南阳市
123.zip (60.06 KB, 下载次数: 34)

评分

参与人数 2好评 +2 精币 +4 收起 理由
丿夜曲 + 1 + 1 新技能已get√
呵呵仙 + 1 + 3 高手,非常感谢你的帮助!!谢谢^_^

查看全部评分

回复

使用道具 举报

结帖率:60% (3/5)
发表于 2018-7-29 16:30:07 | 显示全部楼层   上海市上海市
申请内存空间啊 申请完了 把你参数的数据复制回去 用完了释放掉就行了啊
回复

使用道具 举报

结帖率:100% (4/4)

签到天数: 2 天

发表于 2018-7-29 16:47:01 | 显示全部楼层   湖南省常德市
我用C++调用了一次你那个DLL执行到交换指针那里就出错了,有没有那个模块的源码

补充内容 (2018-7-29 16:47):
有有有,汗.......
回复

使用道具 举报

发表于 2018-7-29 16:51:51 | 显示全部楼层   重庆市重庆市
vc 定义 一个相同的数据类型  声明这个类型的数组变量  以stdcall方式调用DLL函数   把声明的数组变量指针传进去
理论上这样没问题了

评分

参与人数 1好评 +1 收起 理由
呵呵仙 + 1 理论上,像易语言一样填变量地址三两句就OK.但是,不会用VC写代码.正在学习中!

查看全部评分

回复

使用道具 举报

发表于 2018-7-29 17:04:37 | 显示全部楼层   重庆市重庆市
绝心 发表于 2018-7-29 16:51
vc 定义 一个相同的数据类型  声明这个类型的数组变量  以stdcall方式调用DLL函数   把声明的数组变量指针 ...

这个百度一下就OK了  我也只能看懂一点vc代码 写的话也得百度 常用的 关键字 背不过没办法 写多就好了
首先百度 怎么自定义类型
然后百度怎么定义以stdcall方式调用函数
然后百度 怎么传递指针
回复

使用道具 举报

发表于 2018-7-29 17:13:15 | 显示全部楼层   重庆市重庆市
定义类型  整形用int   string 不支持的话 用 char
struct sss
{
string    x;
string    y;
};
回复

使用道具 举报

签到天数: 12 天

发表于 2018-7-29 17:23:46 | 显示全部楼层   河南省南阳市
QQ截图20180729172302.jpg


核心代码:

  1. struct EStr
  2. {
  3.         char *pszData;
  4. };
  5. struct EStruct
  6. {
  7.         char * x1;
  8.         char * y2;
  9. };
  10. struct E_Arr
  11. {
  12.         UINT m_ele;
  13.         UINT m_nCount;
  14.         EStruct *BODY[256];//占位  
  15. };
  16. VOID (WINAPI*XOB)(LPVOID) =NULL;
  17. void CTestEArrayDlg::OnButton1()
  18. {
  19.         // TODO: Add your control notification handler code here
  20.        
  21.         HMODULE hMod=LoadLibrary("dll.dll");
  22.         //  此处 必须使用 HeapAlloc / HeapFree  不能使用  C 的 new /delete 和 Malloc /free
  23.         E_Arr *err=(E_Arr*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(E_Arr));;
  24.         err->m_ele=1;
  25.         if(hMod)
  26.         {
  27.                 XOB=(VOID (WINAPI*)(LPVOID))GetProcAddress(hMod,"XOB");
  28.                 XOB(&err);
  29.                 CString tmp;
  30.                 for (int i=0;i<err->m_nCount;++i)
  31.                 {
  32.                         tmp+=(err->BODY[i]->x1);
  33.                         tmp+="\r\n";
  34.                         tmp+=(err->BODY[i]->y2);
  35.                         tmp+="\r\n";
  36.                 }
  37.                 MessageBox(tmp);
  38.                 FreeLibrary(hMod);
  39.         }
  40.         HeapFree(GetProcessHeap(),0 ,err);
  41. }
复制代码

评分

参与人数 1好评 +1 精币 +3 收起 理由
呵呵仙 + 1 + 3 谢谢,可否打包下整个项目上来!?

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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