Тема: Как загрузить строковый ресурс, находящийся в ARX, из mfc-exe приложения?

Ресурс определяется как обычно, и в процессе работы самого arx'а прекрасно этим arx'ом загружается. Есть небольшое mfc-приложение, которое пытается этот ресурс загрузить:
HINSTANCE hLib = AfxLoadLibrary("d:\\Program Files\\ACAD2000\\temp.dll");
if (hLib == NULL)
{
// и никогда не грузится, всегда сюда попадаем
}
else
{
HINSTANCE hMyRes = AfxGetResourceHandle();
AfxSetResourceHandle(hLib);
const int size = 4096; // это под расчет удлиняющейся с числом версий строки
char cBuf[size];
AfxLoadString(1004/*IDS_DB_VERSIONS*/, cBuf, size);
AfxMessageBox(cBuf);
AfxSetResourceHandle(hLib);
}
если грузить произвольный dll-файл с того же места, все грузится.
попытка вставить AfxMessageBox первой строкой в DllMain показала, что сообщение не выскакивает.
Это создает ощущение, что arx-файл и не должен почему-то грузиться с помощью LoadLibrary.
Вопрос первый - почему?
Вопрос второй - как загрузить строку из ресурсов ARX-файла?
Для справки.
AutoCAD 2000, MS VS 2003, проект импортирован из MS VS 6.0.
MFC подключается динамически.
Определение ресурса:
STRINGTABLE
{
IDS_DB_VERSIONS "4000,4001,4002,4003"
}// надо внешним приложением получить 4003 как последнюю версию
Экспортирование из ARX'а
EXPORTS
DllMain // это я добавил при решении этой проблемы, но улучшения не принесло
acrxEntryPoint        PRIVATE
acrxGetApiVersion    PRIVATE
other_functions
Помогите, пожалуйста. Я придумал пока выносить ресурсы в отдельную dll и грузить ее и из arx'а и из приложения, но может быть, можно все-таки с реусурсами arx'а работать из внешнего приложения...

Re: Как загрузить строковый ресурс, находящийся в ARX, из mfc-exe приложения?

> Wing
1) arx-файл из внешнего приложения при помощи обычного LoadLibrary грузить нельзя. Причин несколько. Одна из них - в таблице импорта acad.exe и его dll-файлы.
2) Можешь попробовать (не пробовал) грузить arx-file при помощи LoadLibraryEx("путь к arx файлу",NULL,LOAD_LIBRARY_AS_DATAFILE) или LoadLibraryEx("путь к arx файлу",NULL,DONT_RESOLVE_DLL_REFERENCES)
3) Лучше всего делать именно так, как ты сделал, а именно ресурсный dll-файл и грузить его и из arx-файла и/или из внешнего приложения. Это будет наиболее правильным подходом.

Re: Как загрузить строковый ресурс, находящийся в ARX, из mfc-exe приложения?

Респект, Александр!
Все работает. Флаг LOAD_LIBRARY_AS_DATAFILE. Из MSDN: "Use this flag when you want to load a DLL only to extract messages or resources from it. " А мне того и надо.
И приношу извинения, что сам не догадался.

Re: Как загрузить строковый ресурс, находящийся в ARX, из mfc-exe приложения?

:) Бывает...