制作纯资源dll

    技术2022-05-19  30

    新建一个空的Win32 Dynamic-Link Library 库,添加一些资源如图片,字符串之类的,如果使用vc6,则在project setting->Link->Project Options 下的编辑框最后加上 /noentry,如果是使用vs2008 则打开项目属性->配置属性->链接器->高级 在无输入点中选择"是/NOENTRY"即可。值得注意的是你必须添加一个文件如main.cpp,里面可以不写任何东西,否则编译不过的。借助纯资源dll可以实现软件本地化

     

    使用代码样例:

    CString csDllName; CString csPath; ::GetModuleFileName( NULL, csPath.GetBuffer(_MAX_PATH), _MAX_PATH-1 ); csPath.ReleaseBuffer(); int index = csPath.ReverseFind( '//'); csDllName = csPath.Left(index ) + _T("//ResDll.dll"); HMODULE hModule = NULL; hModule = LoadLibrary( csDllName ); if( !hModule ) { MessageBox(_T("加载ResDll.dll失败!")); } //HANDLE hBit = ::LoadImage( hModule, MAKEINTRESOURCE(IDB_BIT_BLACK), // IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR); HBITMAP hBit = LoadBitmap( hModule, MAKEINTRESOURCE(IDB_BIT_ON) ); if( !hBit ) { DWORD err = GetLastError(); } //HBITMAP hBit = LoadBitmap( hModule, MAKEINTRESOURCE(IDB_BIT_ON) ); CBitmap bitmap; bitmap.Attach( hBit ); CClientDC dc(this); CDC memDC; memDC.CreateCompatibleDC( &dc ); memDC.SelectObject(&bitmap); dc.BitBlt(200,200,400,240,&memDC,0,0,SRCCOPY ); FreeLibrary( hModule );

     

    代码:


    最新回复(0)