dll调用,Form自动关闭?

gegaosong 2010-07-29 01:05:22
我在页面上用Java调用dll(delphi),可以正常调用,里面有一个方法是弹出一个ModalForm,可以正常弹出

现象:
1.页面很卡,拖动以后会留下"痕迹"
2.查询本地库时,FORM自动关闭(非正常),其他基于Form本身的按钮事件没有问题

有没有什么办法,解决这种问题啊
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
james2222 2010-08-05
  • 打赏
  • 举报
回复
DLL自动删除代码如下:

#include <windows.h>
#include <tchar.h>

HMODULE hDll;

extern "C" __declspec(dllexport) void DeleteMe()
{
//在这里干其它想干的事,如删除其它exe文件

//下面代码实现DLL自删除
TCHAR* szDll = (TCHAR*)VirtualAlloc(NULL, MAX_PATH, MEM_COMMIT, PAGE_READWRITE);
GetModuleFileName(hDll, szDll, MAX_PATH);

__asm
{
push 0 ;参数1
push 0
push szDll ;参数2
push ExitProcess
push hDll ;参数3
push DeleteFile
push FreeLibrary
ret
}
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
hDll = hModule;
break;


case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

将代码编译为test.dll,然后rundll32 test.dll,DeleteMe运行,test.dll就自己删除了
酣酣 2010-07-30
  • 打赏
  • 举报
回复
没整过帮顶!
gegaosong 2010-07-30
  • 打赏
  • 举报
回复
问题已经解决
newfang 2010-07-30
  • 打赏
  • 举报
回复
一,这种问题是要看代码的,估计dll内的代码要改一下。
二:看这情况,40分恐怕是解决不了问题~~

-_@

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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