• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Ошибка при загрузке Dll-библиотеки

Автор Kulikcha, 06.07.23, 11:25:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Kulikcha

Добрый день, уважаемые специалисты.

Проблема такая. Написал максимально простой тестовый плагин для Workflow на языке С++ в среде Visual Studio. Функция плагина должна просто выводить модальное окно с текстом на экран. Соответствующую Dll-библиотеку закинул в папку с другими плагинами Workflow. Затем из конфигуратора Лоцмана пытаюсь вызвать функцию из плагина с помощью ExecPluginFunction, но выдаётся ошибка "Ошибка при загрузке DLL-библиотеки" с кодом 193. Всё перепробовал уже, но ошибка остаётся. Код плагина выглядит так:

dllmain.cpp:

#pragma once

#ifndef WINVER
#define WINVER 0x0501
#endif

#ifndef _WIN32_WINNT_WIN7                  
#define _WIN32_WINNT_WIN7 0x0601
#endif

#ifndef _WIN32_WINNT_WIN10                    
#define _WIN32_WINNT_WIN10 0x0A00
#endif

#ifndef _WIN32_WINNT_WS08                    
#define _WIN32_WINNT_WS08 0x0600
#endif

#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

__declspec(dllexport) void __stdcall M()
{
    MessageBox(NULL, (LPCWSTR)L"fgfgfddff", (LPCWSTR)L"fddffddfdf", MB_YESNO);
}


dllmain.def:

LIBRARY KBM

EXPORTS
M @1

Если исполнять функцию отдельно, то всё работает.
В чём может быть проблема? Заранее большое спасибо. Лоцман версии 22.3.

Chaa

Ошибка 193 - это файл "не является приложением Win32". Может вы 64-битную DLL собираете.

Ну и прототип функции должен быть другой, но на данный момент это неважно.
+ Благодарностей: 1

Kulikcha

Большое спасибо за ответ. Всё уже получилось. Действительно, дело было в неправильных настройках проекта. Но сейчас я уже перешёл на Qt.