社区
Windows SDK/API
帖子详情
小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!
tongqingchao
2003-10-19 01:18:53
小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!
...全文
51
9
打赏
收藏
小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!
小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
COpyFRee
2003-11-20
打赏
举报
回复
写个简单的例子,在EXE中传参数到DLL中运算的一个过程。
(界面: 一个FORM,3 个 Edit + 1 个 Button)
//---------------------------------------------------------------------------
//EXE文件中的ButtonClick事件
void __fastcall TForm1::AddClick(TObject *Sender)
{
int a=Edit1->Text.ToInt(), b=Edit2->Text.ToInt(), c=0;
HINSTANCE ins;
ins = LoadLibrary("add.dll");
if (ins == NULL)
throw "Can't Load Library!";
FARPROC proc;
proc = GetProcAddress(ins,"_myAdd");
if (proc == NULL)
{
FreeLibrary(ins);
throw "Can't Get Proc Address!";
}
typedef void (*FUNC)(int ,int ,int *);
FUNC aFunc = (FUNC)proc;
aFunc(a,b,&c);
Edit3->Text = c;
if (!FreeLibrary(ins))
{
throw "Can't Free!";
}
}
//---------------------------------------------------------------------------
//DLL中的
extern "C" void __export myAdd(int first, int second, int *result)
{
*result = first + second;
return;
}
sczyq
2003-11-13
打赏
举报
回复
很多情况下,是传指针
lurker123
2003-11-13
打赏
举报
回复
用内存影射试试。
或者你可以定义全局的结构变量,将其当作参数对其进行传递,就象上面介绍的方法一样。
pp616
2003-10-20
打赏
举报
回复
呵呵。
SuperSuperLéon
2003-10-19
打赏
举报
回复
tongqingchao (小超) 是你小名吗
SuperSuperLéon
2003-10-19
打赏
举报
回复
dll里写个函数,调用这个函数,通过参数将你要的值传递给 dll 就可以了。
呵呵。可顺即可逆。
宝码
2003-10-19
打赏
举报
回复
extern "C" __declspec(dllexport) void __stdcall NewForm(int FormRight,int UISytle);
qiu_allan
2003-10-19
打赏
举报
回复
对呀。用参数就行了。
tccsdn
2003-10-19
打赏
举报
回复
带个参数就可以的呀
(xxx.
dll
)处(位于xxx.
exe
中)引发的异常: 0xC0000005:
读取
位置 0x0000003F 时发生访问冲突。已解决。
下面两个这种类型的报错都一样。(跟xxx.
dll
和xxx.
exe
都没关系) 0x794CECC1 (Qt5Cored.
dll
)处(位于 xxx.
exe
中)引发的异常: 0xC0000005:
读取
位置 0x0000003F 时发生访问冲突。 处未处理的异常: 0xC0000005:
读取
位置 0x00000000时发生访问冲突 BUG的显示方式: 闪退 最近在用Qt开发一个客户端,但是按了一个按钮后总是闪退,百思不得其解,后来调试看了,然后到了这一步就提示错误。如图(其中m_acToken只是个QS
DLL
共享
变量
方法
前段时间,有人问我,动态链接库被多个进程加载的话,是有几个副本。当时我想了想说,动态加载方式肯定是一个进程对应一个副本。静态的不清楚。后来经过咨询和在网上浏览资料发现:其实
DLL
不管哪种方式加载都是将副本加载到进程空间中。 正常编译下的
dll
,它的
变量
使用到的内存是独立的。比如你同时运行两个调用了某个
dll
的用户程序,试图对某一个在
dll
中定义的全局
变量
修改赋值的时候,两个程序
里
的变
c#
读取
通过组态王AccessHist.
dll
读取
组态王历史
数据
库
c#
读取
通过组态王AccessHist.
dll
读取
组态王历史
数据
库 第一步获取工程的路径下的.pro文件 点击“连接”按钮 再点击“枚举站点”名称,2处的combox将
会
显示站点名称 再枚举所有的历史
变量
名称,
变量
名称的combox控件将显示所有
变量
改变其实查看日期查看所有的区间
数据
dataGridView
里
面
将显示所有查询的
数据
需要该软件的私信博主,499348294,一定要说明加的目的 ...
0x576D31DE (vcruntime140.
dll
)处(位于 PalletDetection.
exe
中)引发的异常: 0xC0000005:
读取
位置 0x0E54F000 时发生访问冲突。
下面两个这种类型的报错都一样。(跟xxx.
dll
和xxx.
exe
都没关系) 0x794CECC1 (Qt5Cored.
dll
)处(位于 xxx.
exe
中)引发的异常: 0xC0000005:
读取
位置 0x0000003F 时发生访问冲突。 处未处理的异常: 0xC0000005:
读取
位置 0x00000000时发生访问冲突 BUG的显示方式: 闪退 最近在用Qt开发一个客户端,但是按了一个按钮后总是闪退,百思不得其解,后来调试看了,然后到了这一步就提示错误。如图(其中m_acToken只是个..
vb.net语言调用
dll
函数出现“
读取
或写入受保护内存。这通常
指示
其他内存已损坏。”
这个问题我也纠结了很久,最终还是给我ko了!哈哈…… 解决方法: 在调用外面
dll
函数的时候,首先要在模块
里
面
通过declear来声明函数的,另外还有结构体也需要声明。注意,每个
数据
的类型要跟
dll
说明文档
里
面
的一致才行,切不可疏忽!结构体
里
面
有数组的时候,在vb6.0下面是可以直接赋值大小的,但是在.net下面是不允许这样做的。要在结构体(其实是不能继承的类而已)
里
面
声明构造函数,在外面用n
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章