ADN Club > Fusion 360 API
LoadLibrary
(1/1)
dr.B00:
Добрый день. Подскажите возможно ли в скриптах на с++ подключение dll?
Пробовал таким образом - не получилось.
--- Код - C++ [Выбрать] --- HMODULE hDll; hDll = LoadLibrary(_T("fusion_cmm.dll")); if (!hDll) {...
Александр Ривилис:
dr.B00
Приветствую на форуме!
1. Ознакомься пожалуйста с правилами форматирования кода на форуме и соблюдай их.
2. А если попробовать задать полный путь к файлу?
3. Почему if (!hDll) ? Это ситуация с ошибкой, т.к. в нормальном случае возвращается ненулевое значение.
Александр Ривилис:
Взял первую попавшуюся dll и переименовал её в test.dll. Проверил следующий код. Всё работает.
--- Код - C++ [Выбрать] ---#include <windows.h>#include <Core/CoreAll.h>#include <Fusion/FusionAll.h>#include <CAM/CAMAll.h> using namespace adsk::core;using namespace adsk::fusion;using namespace adsk::cam; Ptr<Application> app;Ptr<UserInterface> ui; extern "C" XI_EXPORT bool run(const char* context){ app = Application::get(); if (!app) return false; ui = app->userInterface(); if (!ui) return false; HMODULE hdll = LoadLibraryW(L"C:\\test.dll"); if (hdll) { ui->messageBox("Dll loaded"); } else { ui->messageBox("Dll not loaded"); } return true;} extern "C" XI_EXPORT bool stop(const char* context){ if (ui) { ui->messageBox("in stop"); ui = nullptr; } return true;} #ifdef XI_WIN #include <windows.h> BOOL APIENTRY DllMain(HMODULE hmodule, DWORD reason, LPVOID reserved){ switch (reason) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;} #endif // XI_WIN
dr.B00:
Александр Ривилис,
Большое спасибо. Когда указал полный путь к dll получилось (хотя в Include directories место хранения было прописано).
Александр Ривилис:
--- Цитата: dr.B00 от 24-05-2016, 22:04:39 --- (хотя в Include directories место хранения было прописано)
--- Конец цитаты ---
Для LoadLibrary Include directories не указ. Более того это информация используется на стадии компиляции C++, а не для выполняющегося add-in. Читай описание LoadLibrary: https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175
Навигация
Перейти к полной версии