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

tongqingchao 2003-10-19 01:18:53
小弟只会从DLL里面读取数据,但不知如何将EXE里的变量传给DLL请高手指示!
...全文
12 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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 就可以了。

呵呵。可顺即可逆。
回复
Leo-Lau 2003-10-19
extern "C" __declspec(dllexport) void __stdcall NewForm(int FormRight,int UISytle);
回复
qiu_allan 2003-10-19
对呀。用参数就行了。
回复
tccsdn 2003-10-19
带个参数就可以的呀
回复
相关推荐
发帖
Windows SDK/API
创建于2007-08-02

1206

社区成员

C++ Builder Windows SDK/API
申请成为版主
帖子事件
创建了帖子
2003-10-19 01:18
社区公告
暂无公告