小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!

tongqingchao 2003-10-19 01:18:53
小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!
...全文
43 9 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
带个参数就可以的呀

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧