Как я могу построить файл VC ++ .dll внутри (статически) в моем .exe? - PullRequest
0 голосов
/ 09 августа 2010

У меня есть один проект VC ++, который скомпилирован и создан файл .dll.Я сделал одно приложение, которое использует выше vc ++ .dll файл.Могу ли я создать новое приложение .exe и .dll статически? Мне нужен только один .exe-файл, содержащий файл .dll (статически). Как это возможно в Visual Studio?

1 Ответ

1 голос
/ 09 августа 2010

Зачем вообще нужна DLL, если вы просто хотите встроить ее в EXE?

[snip, edit]

Итак, для этого вам просто нужно добавитьФайл DLL в качестве ресурса, и используйте FindResource / LoadResource, чтобы извлечь его где-нибудь.Вам нужно будет записать его в файловую систему, если вы хотите загрузить DLL.Вот функция (C ++), которую я использую в проекте для загрузки текстового файла из ресурса.Вы должны быть в состоянии легко изменить это для ваших целей.Обратите внимание, что здесь нет проверки ошибок;это просто чтобы показать вам основную идею.

std::string LoadTextFileResource(HINSTANCE hInstance, LPCTSTR szResName, LPCTSTR szResType)
{
    HRSRC hrsrc=FindResource(hInstance, szResName, szResType);
    if(!hrsrc) return L"";
    HGLOBAL hg1 = LoadResource(hInstance, hrsrc);
    DWORD sz = SizeofResource(hInstance, hrsrc);
    void* ptr1 = LockResource(hg1);

    // assume the encoding is ASCII.
    return std::string((const char*)ptr1, sz);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...