Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

International dlls & end of days. 1

Status
Not open for further replies.

ahoodin

Programmer
Jul 25, 2001
48
0
0
US
Hello all,

I am working with W2k and MSVC 6.0. I recently installed a german application and all my warning messages come in as german. I have already checked the regional settings and keyboard layout...to no avail English. I have already checked the MSVC options and see English. I am now assuming that there is a dll or something with all the strings in them that has been replaced. I found some articles on message compilers for resources. I need some advice...else a german dictionary will be my life preserver.

Hellllppp!!!!

ahoodin
 
I have designed an application that loads a specific resource DLL at run time. It checks on the locale and calls the API. Below is a snip of the code. What I would do in your case is look for the DLLs.. usually they will be prefixed or postfixed with a letter for the specific language. Rename the german dll and then name the english one to the german dll name. They will both be the same except for string tables (assumption). See if this helps.

Matt

Code:
/////////////////////////////////////////////////////////////////////////////
// locale constants
const int LOCALE_JAP = MAKELCID(MAKELANGID(LANG_JAPANESE,SUBLANG_DEFAULT),SORT_DEFAULT);
const int LOCALE_ENG =  MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),SORT_DEFAULT);
const int LOCALE_ESP = MAKELCID(MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_MODERN),SORT_DEFAULT);

/////////////////////////////////////////////////////////////////////////////
// CResDllsApp initialization

BOOL CResDllsApp::InitInstance()
{
	AfxEnableControlContainer();

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif


	UINT locale = GetProfileInt(_T("Locale"),_T("Locale"),0);

	switch(locale)
	{
	case LOCALE_JAP:
		langDLL = AfxLoadLibrary(_T("JapaneseDll.dll"));
		if(langDLL)
		{
			AfxSetResourceHandle(langDLL);
		}
		break;
	case LOCALE_ESP:
		langDLL = AfxLoadLibrary(_T("SpanishDll.dll"));
		if(langDLL)
		{
			AfxSetResourceHandle(langDLL);
		}
		break;
	case LOCALE_ENG:
		break;
	default:
		break;
	}

 
I now believe that now the Kernel32.dll has been superceded by a 3rd party application that was installed on my machine as a demo for my boss. No wonder I was having so much trouble. Gotta dig up the W2k cd and start prayin....

This is a nice piece of code that you have sent me.

>I have designed an application that loads a specific resource DLL at run time.


ahoodin
 
Make sure in the regional settings:

Under the General Tab
Locale = English
Menus and Dialogs = English
and that German is selected as deault (here only)

under the Input Locales Tab
Set as Default =Engish


I am using Japanese and I have no problem. Also make sure you installed the English version of VC.

Peace out.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top