Я пытаюсь открыть файл для своего проекта 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
Спасибо!