Ошибка связывания C ++ с shellapi.h ShellExecuteA - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь открыть файл для своего проекта Engine, но я не могу найти никаких функций в std :: filesystem, чтобы сделать это, поэтому я нашел ShellExecuteA, который делает то, что я хотел, но когда я попытался экспортировать этот метод из моего dll к моему exe, у меня есть ошибки связи:

in .h в моей dll:

namespace FileSystem
{
    ENGINE_API void OpenFile(const char* pathFile) noexcept;
}

in. cpp в моей dll:

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <shellapi.h>

ENGINE_API void FileSystem::OpenFile(const char* pathFile) noexcept
{
    ShellExecuteA(NULL, "open", (LPCSTR)pathFile, NULL, NULL, 1);
}

в основном. cpp в моем exe:

FileSystem::OpenFile(R"(test.h)");

Это работает, только если мой метод OpenFile встроенный, но я не хочу включать Windows .h в заголовочный файл. И это работает, если я определяю метод не в dll.

Ошибка:

Erreur LNK2019 symbole externe non résolu __imp_ShellExecuteA référencé dans la fonction "void __cdecl FileSystem :: OpenFile (char const *) "(? OpenFile@FileSystem@@YAXPEBD@Z) Engine C: \ Users \ user \ Desktop \ EngineProject \ FileSystem.obj 1

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...