У меня есть BHO (объект помощника браузера) для интеллектуального анализа данных. Множество низкоуровневых манипуляций с DOM делегировано javascript. До сих пор мое приложение брало его из каталога установки приложения; но теперь из-за некоторых требований клиента, я должен связать JS в самой библиотеке BHO.
Теперь моя проблема в том, что я не понял, как добавить JS-файл в мой файл ресурсов (a.k.a rc-файл). Я попытался добавить файл HTML (который поддерживается в Visual Studio 2008 IDE). Но я не могу найти ресурс HTML, когда я делаю что-то вроде этого (g_hInstance
- это HINSTANCE
моего BHO):
if(!g_hInstance)
{
::MessageBox(NULL, L"Fail 0", L"", MB_OK);
return;
}
HRSRC hRsrc = FindResource( g_hInstance, MAKEINTRESOURCE(IDR_JS), RT_HTML );
if(!hRsrc)
{
::MessageBox(NULL, L"no point", L"", MB_OK);
return;
}
DWORD dwFSz = SizeofResource( g_hInstance, hRsrc );
HGLOBAL hHtml = LoadResource( g_hInstance, hRsrc );
LPVOID pHtml = LockResource( hHtml );
HANDLE hFHtm = CreateFile( L"c:\\temp\\Test1.htm", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL );
DWORD dwWr;
WriteFile( hFHtm, pHtml, dwFSz, &dwWr, NULL );
CloseHandle( hFHtm );
UnlockResource( hHtml );
ShellExecute( NULL, L"open", L"c:\\temp\\Test1.htm", NULL, NULL, 0 );
My questions are:
- Можно ли добавить javascript в файл ресурсов Visual C ++ (т. Е. В любой Dll)? Если да, то как добавить и получить к нему доступ.
- Если html разрешен в
.rc
файле, то почему FindResource( g_hInstance, MAKEINTRESOURCE(IDR_JS), RT_HTML );
всегда дает мне NULL?
Спасибо