Skip to content

Commit

Permalink
Fixed implementation of VariableDeclarationExpression::loadNativeFunc…
Browse files Browse the repository at this point in the history
…tion() for Windows target.
  • Loading branch information
nthnn committed Dec 13, 2024
1 parent b139e70 commit 231fee4
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions src/n8/ast/expression/VariableDeclarationExpression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,24 @@ NativeFunction VariableDeclarationExpression::loadNativeFunction(
#if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64)

std::filesystem::path path(library);
std::filesystem::path searchFolder(path
.parent_path()
.string()
const char* parentPath = path.parent_path().string();
int size = MultiByteToWideChar(
CP_UTF8, 0,
parentPath, -1,
nullptr, 0
);

wchar_t* wfolderPath = new wchar_t[(size_t) size];
MultiByteToWideChar(
CP_UTF8, 0,
parentPath, -1,
wfolderPath,
size
);
std::wstring searchPath = searchFolder.wstring();

handle = LoadLibraryA(library.c_str());
SetDllDirectoryW(searchPath.c_str());
std::cout << "Loading DLLs from: " << searchPath.c_str() << std::endl;
std::cout << "Loading DLLs from: " << searchFolder.wstring() << std::endl;

#elif defined(__APPLE__)
handle = dlopen(library.c_str(), RTLD_LAZY);
Expand Down

0 comments on commit 231fee4

Please sign in to comment.