15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Q: How do I get the right resource in language-dll

Klaus Kurzawa -- klausk@saruman.cadpoint.se
Wednesday, December 04, 1996


Hi,

Environment: VC++ 4.1, Win 95, NT 4.0, NT 3.51
     
I tried the msnews with no luck.

In my app I load a dll that contains resources of the language the user runs in 
and use AfxSetResourceHandle(hRes) to use it. 
     
Then I took the dirpkr-sample to use a dir-selector, my app needs to run on 
NT3.51 & NT4 & Win95, and there You should assign the dialog-template to use as 
Your dialog:
     
    cfdlg.m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_DLG_SELDIR);
     
     
Now this don't work for me because this only loads the resource from the 
exe-file.
     
So I tried to find the resource in the dll like this:
     
   HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDD_DLG_SELDIR),     
                                           RT_DIALOG);
     
I tried this one to with no success
   //HINSTANCE hInst = AfxGetResourceHandle();
     
   HRSRC hRes = ::FindResource( hInst, 
                                MAKEINTRESOURCE(IDD_DLG_SELDIR), RT_DIALOG);
   HGLOBAL hGlobal = ::LoadResource(hInst, hRes);
     
     
I think this line is the error, how do I get the template from the HGLOBAL or 
how should I solve this at all?
   cfdlg.m_ofn.lpTemplateName = MAKEINTRESOURCE(hGlobal);
     
     
The dialog are not displayed 
   cfdlg.DoModal(); 
     
     
Hopefully someone on this list can help me?
     
Best regards,
   Klaus Kurzawa
     
/klausk@cadpoint.se
     
     





Klaus Kurzawa -- klausk@saruman.cadpoint.se
Thursday, December 05, 1996

[Mini-digest: 2 responses]


---------------------------- Forwarded with Changes ---------------------------
From: Klaus Kurzawa at CADPOINT.SWE
Date: 12/4/96 9:10AM
*To: mfc-l@netcom.com at SMTPLINK
Subject: Q: How do I get the right resource in language-dll
-------------------------------------------------------------------------------
Hi,
     
Environment: VC++ 4.1, Win 95, NT 4.0, NT 3.51
     
In my app I load a dll that contains resources of the language the user runs in 
and I call AfxSetResourceHandle(hRes) to make it the current resource. 
     
Then I took the dirpkr-sample to use a dir-selector, my app needs to run on 
NT3.51 & NT4 & Win95, and in that sample You should assign the dialog-template 
to use as Your dialog:
     
    cfdlg.m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_DLG_SELDIR);
     
     
Now this don't work for me because this only loads the resource from the 
exe-file.
     
So I tried to find the resource in the dll like this:
     
   HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDD_DLG_SELDIR),     
                                           RT_DIALOG);
     
I tried this one too with no success
   //HINSTANCE hInst = AfxGetResourceHandle();
     
   HRSRC hRes = ::FindResource( hInst, 
                                MAKEINTRESOURCE(IDD_DLG_SELDIR), RT_DIALOG);
   HGLOBAL hGlobal = ::LoadResource(hInst, hRes);
     
     
Here's my problem, how do I get the template from the HGLOBAL or how should I 
solve this in another way?
   cfdlg.m_ofn.lpTemplateName = MAKEINTRESOURCE(hGlobal);
     
     
The dialog are not displayed 
   cfdlg.DoModal(); 
     
     
Best regards,
   Klaus Kurzawa
     
/klausk@cadpoint.se
     
     


-----From: David Lowndes 

>In my app I load a dll that contains resources of the language the user runs
in 
and use AfxSetResourceHandle(hRes) to use it. 
     
Then I took the dirpkr-sample to use a dir-selector, my app needs to run
on 
NT3.51 & NT4 & Win95, and there You should assign the dialog-template to
use as 
Your dialog:....

    cfdlg.m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_DLG_SELDIR);
<

Klaus,

I replied to your note in the newsgroup but for some reason my messages
aren't appearing at the moment.

line above
is to set the cfdlg.m_ofn.hInstance to the instance handle of your
loaded
DLL (the handle returned by LoadLibrary).

>Dave




| Вернуться в корень Архива |