| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1630 人关注过本帖
标题:请教DLL共享数据断的问题
取消只看楼主 加入收藏
yalewang
Rank: 2
等 级:论坛游民
帖 子:125
专家分:35
注 册:2010-4-15
结帖率:94.74%
收藏
已结贴  问题点数:50 回复次数:3 
请教DLL共享数据断的问题
想在DLL中定义一个共享数据段,让几个调用程序共享,在.cpp中加了如下代码:
#define expEXPFUNC __declspec(dllexport)

#pragma data_seg("sharesection")
 int xx=0;//设置一个共享变量
#pragma data_seg()

然后在.cpp中设计了输出函数:
expEXPFUNC int __stdcall  exp(int x)
{
    xx=x;
   return(xx);
}

在.def文件中添加了编译指令及输出指令:
SETCTIONS   
.sharesection READ WRITE SHARED
EXPORTS
    ; Explicit exports can go here
exp
结果编译能通过,可以生成DLL
用VB、delphi调用时均提示读失败,好像并没有设置成功,
搜了半天,也没能找出答案,望高手指教。
搜索更多相关主题的帖子: DLL 数据 
2010-08-06 18:06
yalewang
Rank: 2
等 级:论坛游民
帖 子:125
专家分:35
注 册:2010-4-15
收藏
得分:0 
鱼兄,网上看过FileMaping对象的方法,不完整,看不懂,能否提供一个?
2010-08-06 20:51
yalewang
Rank: 2
等 级:论坛游民
帖 子:125
专家分:35
注 册:2010-4-15
收藏
得分:0 
多谢,我会详读,昨天试了半天,最终用VC解决了问题
2010-08-07 14:33
yalewang
Rank: 2
等 级:论坛游民
帖 子:125
专家分:35
注 册:2010-4-15
收藏
得分:0 
1宏定义出错,该定义方式是跟一个例子学的,不过用到共享数据段就出错了,#define expEXPFUNC __declspec(dllexport)
加上extern 'c'
解决了这个也只能解决,调用者不出读错的问题,数据仍不能共享;
2、书上介绍了三种方式设置编译指令,均未说明其中有差别,也就是.def中放置
SETCTIONS   
sharesection READ WRITE SHARED
不会产生共享的效果,在.cpp中添加#program comment(linker ....) 就根本解决了问题。
经编译0erros,owarns,生成dll测试达到效果。

2010-08-07 21:09
快速回复:请教DLL共享数据断的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016800 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved