VC6.0做一个国际化,动态调用dll资源文件替换原程序的资源文件

VC6.0做一个国际化,动态调用dll资源文件替换原程序的资源文件,第1张

你用得不对

a=::LoadLibrary("English.dll")

HINSTANCE save_hInstance = AfxGetResourceHandle()

HMODULE hDll = GetModuleHandle("English.dll")

AfxSetResourceHandle(hDll)

..............................

AfxSetResourceHandle(save_hInstance) //恢复弯链资源核腔环改闹衫境

::FreeLibrary(a)

第一种方法有问题:

应该是

AFX_MANAGE_STATE( AfxGetStaticModuleState() )按你那唤烂竖样调资资句柄仍然在主程序模块.

第二种方法应该是行的,和大不知道原历漏因,期待高手...

1、把要复制的对话框的头文件和实现文件(.h文件和.cpp文件)复制到新工程文件夹下,在新工程中选择Preject->Add To Project->Files,选中对话框的头文件和实现文件确定;

2、用记事本打开原工程的资源文件(.rc文件),汪信灶找到对话框定义位置,把所有相关内容复制到新工程的.rc文件相应处,对话框在资源文件中的定义一般是以下形式的(以关于对话框为例):

///////////////////////////////////困扮//坦搭////////////////////////////////////////

//

// Dialog

//

IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55

STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

CAPTION "关于 TempCtrl"

FONT 9, "宋体"

BEGIN

ICONIDR_MAINFRAME,IDC_STATIC,11,17,20,20

LTEXT "TempCtrl 1.0 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX

LTEXT "版权所有 (C) 2011",IDC_STATIC,40,25,119,8

DEFPUSHBUTTON "确定",IDOK,178,7,50,14,WS_GROUP

END

3、将新工程编译运行,会出现放多变量未定义错误,这是因为复制过来的对话框中有很多控件,它们的ID未定义。依次找到这些ID,打开resource.h,将之定义即可,一般是如下形式:

#define IDC_EDIT_TEMP1 1023

#define IDC_BUTTON_START1 1024

#define IDC_COMBO_AI 1025


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12321335.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存