HGLOBAL hRes;
HRSRC hResInfo;
HINSTANCE DLLInst = NULL;
//HINSTANCE hDLL = LoadLibrary("VTEXT.dll" );
AfxSetResourceHandle(hDLL);
// 寻找ocx资源名
HMODULE g_hinstance = AfxGetResourceHandle();
if(g_hinstance == NULL){ MessageBox("NULL");return ;}
hResInfo = ::FindResource(g_hinstance,MAKEINTRESOURCE(IDR_DLL1),"DLL");
if(hResInfo= NULL) return;
hRes = ::LoadResource(g_hinstance,hResInfo);
if(hRes = NULL) return;
DWORD dFileLength = ::SizeofResource(g_hinstance,hResInfo);
//说明dfilelength值总是=0;问题就是这里;请你看看!!
//创建DLL文件
char buff[256];
MessageBox(itoa(dFileLength,buff,16));
char pPath[MAX_PATH];
GetSystemDirectory(pPath, MAX_PATH);
char g_pFile[MAX_PATH];
strcpy(g_pFile, pPath);
strcat(g_pFile, "\\VTEXT.DLL");
HANDLE hFile = CreateFile(g_pFile, GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwNumberOfBytesWritten = 0;
if(hFile > 0)
WriteFile(hFile, (LPCVOID)hRes, dFileLength, &dwNumberOfBytesWritten, NULL);
else
{
MessageBox("加载Res不成功","提示信息",MB_OK);
CloseHandle(hFile);
}
DLLInst = ::LoadLibrary(g_pFile);
MessageBox(g_pFile);
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress(DLLInst,_T("DllRegisterServer")); if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
MessageBox("控件注册失败!","错误",MB_OK);
FreeLibrary(DLLInst);
return;
}
MessageBox("控件注册成功","提示",MB_OK);
}
else
MessageBox("控件注册失败!!","错误",MB_OK);
HRSRC hResInfo;
HINSTANCE DLLInst = NULL;
//HINSTANCE hDLL = LoadLibrary("VTEXT.dll" );
AfxSetResourceHandle(hDLL);
// 寻找ocx资源名
HMODULE g_hinstance = AfxGetResourceHandle();
if(g_hinstance == NULL){ MessageBox("NULL");return ;}
hResInfo = ::FindResource(g_hinstance,MAKEINTRESOURCE(IDR_DLL1),"DLL");
if(hResInfo= NULL) return;
hRes = ::LoadResource(g_hinstance,hResInfo);
if(hRes = NULL) return;
DWORD dFileLength = ::SizeofResource(g_hinstance,hResInfo);
//说明dfilelength值总是=0;问题就是这里;请你看看!!
//创建DLL文件
char buff[256];
MessageBox(itoa(dFileLength,buff,16));
char pPath[MAX_PATH];
GetSystemDirectory(pPath, MAX_PATH);
char g_pFile[MAX_PATH];
strcpy(g_pFile, pPath);
strcat(g_pFile, "\\VTEXT.DLL");
HANDLE hFile = CreateFile(g_pFile, GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwNumberOfBytesWritten = 0;
if(hFile > 0)
WriteFile(hFile, (LPCVOID)hRes, dFileLength, &dwNumberOfBytesWritten, NULL);
else
{
MessageBox("加载Res不成功","提示信息",MB_OK);
CloseHandle(hFile);
}
DLLInst = ::LoadLibrary(g_pFile);
MessageBox(g_pFile);
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress(DLLInst,_T("DllRegisterServer")); if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
MessageBox("控件注册失败!","错误",MB_OK);
FreeLibrary(DLLInst);
return;
}
MessageBox("控件注册成功","提示",MB_OK);
}
else
MessageBox("控件注册失败!!","错误",MB_OK);
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货