Почему моя DLL не выполняет EntryPoint? - PullRequest
0 голосов
/ 13 февраля 2019

Я добавил пакет lua в свой проект c ++, но всякий раз, когда lua включается в мой проект, никакие функции не вызываются, когда моя DLL подключается, но когда я не включаю lua, окно сообщения появляется во вложении.Я уверен, что это не программа для инъекций, так как я тестировал свою DLL с несколькими программами, и теперь она сводит меня с ума.У кого-нибудь есть решения или шаги на правильном пути?Я был бы очень признателен!

Используемый пакет: https://bitbucket.org/sgrottel_nuget/lua/overview

РЕДАКТИРОВАТЬ: Включение заголовков lua удалит функциональность из моей DLL.Удаление заголовков lua (комментируя "#include" lua.hpp ") позволит всплывающему окну сообщений. Я неправильно использую пакет lua или пропустил небольшой шаг?

#include "FVM.h" // includes lua headers etc. (when removed function works on attachment)


    // Entry point
    BOOL APIENTRY DllMain(HMODULE hModule,
        DWORD  ul_reason_for_call,
        LPVOID lpReserved
    )
    {
        switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
            MessageBoxA(NULL, "attached", "Function", MB_OK);
        case DLL_THREAD_ATTACH:
            MessageBoxA(NULL, "attached", "Function", MB_OK);
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
        }
        return TRUE;
    }

1 Ответ

0 голосов
/ 13 февраля 2019

Я не могу воспроизвести эту проблему.Пожалуйста, следуйте моим инструкциям, чтобы узнать, может ли это воспроизвести эту проблему.

  1. Создание основного приложения с использованием шаблона приложения для рабочего стола Windows.
  2. Создание приложения DLL с использованием библиотеки динамических ссылок (DLL)template.
  3. Установите пакет nuget LUA в приложение DLL.
  4. Добавьте файл заголовка в dllmain.cpp и добавьте MessageBoxA с вашим кодом.
  5. ЗагрузитьDLL в основном приложении:

    HMODULE myDll = LoadLibraryA("D:\\TestDllLoad\\Debug\\Dll1.dll");

В результате окно сообщения «прикрепляется» каждый раз, когда я запускаю основное приложение.

enter image description here

...