双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

新手求助:dll被载入后,主程序不响应

glin2010 glin2010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人刚学dll,自己试着写了一个dll之后,在主程序中调用dll,dll中的窗口正确显示了,但此时dll窗口是活动的,主程序窗口变成非活动窗口,并且不响应任何操作,变灰了。

我猜想,是不是dll此时占用了主程序进程,要让dll窗口和主程序窗口都能响应操作,必须新开线程呢?我还没试过在线程中调用dll窗口。

请各位大大告诉我这是什么原因?


void __fastcall TForm1::ShowDLLaboutClick(TObject *Sender)
{
HINSTANCE ins;
ins = LoadLibrary("./dll/mkabout.dll");
try
{
if(ins == NULL)
throw MyException("Can't Load Library!");
FARPROC proc;
proc = GetProcAddress(ins,"_myAbout"); //一个什么也不做的form
if(proc == NULL)
{
FreeLibrary(ins);
throw MyException("Can't Get Proc Address!");
}
proc();
if(!FreeLibrary(ins))
{
throw MyException("Can't Free!");
}
}
catch (MyException &myException)
{
ShowMessage(myException.test);
}
}


...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
glin2010
C++ Builder 13,871 成员 102,696 内容