Тема: Как загрузить строковый ресурс, находящийся в 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'а работать из внешнего приложения...