小弟会delphi不会C++ 但是由于需要请问有人可以帮我转一下吗?
procedure WinMain;
var
fomr1:Tform;
begin
form1:=tform1.Create(form1);
form1.ShowModal;
end;
procedure DllEntryPoint(hModule: HMODULE; Reason: Integer; lpReserved: Pointer);
var
Thread: DWORD;
begin
case Reason Of
DLL_PROCESS_ATTACH:
CreateThread(nil,0,@WinMain,nil,0,Thread);
DLL_PROCESS_DETACH:
CloseHandle(Thread);
end;
end;begin
DllProc:=@DLLEntryPoint;
DLLEntryPoint(hInstance,DLL_PROCESS_ATTACH,nil);end.
procedure WinMain;
var
fomr1:Tform;
begin
form1:=tform1.Create(form1);
form1.ShowModal;
end;
procedure DllEntryPoint(hModule: HMODULE; Reason: Integer; lpReserved: Pointer);
var
Thread: DWORD;
begin
case Reason Of
DLL_PROCESS_ATTACH:
CreateThread(nil,0,@WinMain,nil,0,Thread);
DLL_PROCESS_DETACH:
CloseHandle(Thread);
end;
end;begin
DllProc:=@DLLEntryPoint;
DLLEntryPoint(hInstance,DLL_PROCESS_ATTACH,nil);end.
unsigned __stdcall WinMain(void* apParam)
{
CXXDialog dlg;
dlg.DoModal();
return 0;
}HANDLE hThread;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(ul_reason_for_call == DLL_PROCESS_ATTACH)
hThread = (HANDLE)_beginthreadex(NULL, 0, WinMain, NULL, 0, NULL);
else if(ul_reason_for_call == DLL_PROCESS_DETACH)
{
CloseHandle(hThread);
}
return TRUE;
}
BOOL WINAPI DllEntryPoint(HINSTANCE hDLL,DWORD dwReason,LPVOID Reserved)
{
DWORD dwThreadId=0;
HANDLE hThread=NULL;
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
{
hThread=CreateThread(null,0,ShowMe,null,0,&dwThreadId);
break;
}
case DLL_PROCESS_DETACH:
{
CloseHandle(hThread);
break;
}
}
return TRUE;
} //2、你DLL中的一个函数,里面要用到一个对话框资源,所以你要先手工创建一个资源,命名可以不变,默认叫IDD_DIALOGx
static int ShowMe(void) //你上面是WinMain 但在VC中这是不允许的名字,所以随意改一下名字吧
{
CMyDialog dlg; //你上面要建一个叫form1的窗口,但是VC中不叫什么FORM,都以IDD_DIALOGx为名的。
//所以你要建一个对话框,并且给这个对话框关联一个类
//自动生成的就可以,所以就叫CMyDialog吧,
//当然,也可以使用Create(...)来建立。那就要这样
/*
CMyDialog *a;//定义要弹出的一个非模态对话框对象
a=new CMyDialog;//分配
a->Create(IDD_DIALOG1);//对话框ID
a->ShowWindow(TRUE);//显示
*/
dlg.DoModal();
return 1;
}
3、创建Sample.def文件:(DLL文件需要这个文件才能编译)
·在选单中选择File\New\Text File;
·输入以下代码后保存文件名“Sample.def”:
;Sample.def
;指出DLL的名字Sample,链接器将这个名字放到DLL导入库中
LIBRARY Sample
;定义导出函数ShowMe()为例
EXPORTS
ShowMe
;def文件结束然后,你就可以编译这个DLL了。其它程序里就可以使用ShowMe()来显示一个对话框了。
我老是出错。
2L的也出错,邮箱是[email protected]