На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела C/C++: Базы данных
Модераторы: B.V.
  
    > Почему mysql не видит функцию из подключаемой DLL?
      На С++ определил экспортируемую функцию в рамках освоения технологии создания и вызова udf вmysql.Код программы генерирующей DLL:
      C++Выделить код
      ExpandedWrap disabled
        // dllmain.cpp : Определяет точку входа для приложения DLL.
        #include "pch.h"
        _declspec(dllexport)
        double you() {
            return 0.0;
        }
         
        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;
        }

      Пытаюсь подключить функцию к mysql командой CREATE FUNCTION you RETURNS REAL SONAME
      "mysqlProba.dll";
      Получаю Error Code: 1127. Can't find symbol 'you' in library. В чем проблема как мне добиться чтобы функция подключилась и стала доступна для вызова в mysql?
          с учетом советов и подсказок программа сейчас имеет вид
          ExpandedWrap disabled
            #include<WinSock2.h>
            #include<mysql.h>
            #include<ctype.h>
            #include<pch.h>
            extern "C" int yougo_init(UDF_INIT*, UDF_ARGS*, char*) { return 0; }
            extern "C" int  yougo_deinit(UDF_INIT*) { return 0; }
            extern "C" double yougo(UDF_INIT*, UDF_ARGS*, char*) { return 0.0; }

          однако мне ее не удается собрать из-за ошибок 1.Серьезность E1696 не удается открыть источник файл "pch.h" Probamysqludf H:\studyprojects\MySqlLib\MySQLPRoba1\Probamysqludf\dllmain.cpp 4
          2.Ошибка C2065 UDF_INIT: необъявленный идентификатор Probamysqludf H:\studyprojects\MySqlLib\MySQLPRoba1\Probamysqludf\dllmain.cpp 5
          3.Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "{" Probamysqludf H:\studyprojects\MySqlLib\MySQLPRoba1\Probamysqludf\dllmain.cpp 5


          .Как мне добиться работоспособности программы?
            Конечно, мы можем ещё копаться тут триста лет в мелочах ... а ты подумай "перпендикулярно" ... возьми Qt6 и просто начти программировать прикладную логику. Ну подумаешь +16Мб к исполняемому файлу ... ты же не эмбедер, лили да?
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0439 ]   [ 16 queries used ]   [ Generated: 19.04.24, 03:23 GMT ]