Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.239.195] |
|
Сообщ.
#1
,
|
|
|
На С++ определил экспортируемую функцию в рамках освоения технологии создания и вызова udf вmysql.Код программы генерирующей DLL:
C++Выделить код // 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? |
Сообщ.
#2
,
|
|
|
Может быть поможет: https://stackoverflow.com/questions/6523166...ql-udf-creation
|
Сообщ.
#3
,
|
|
|
с учетом советов и подсказок программа сейчас имеет вид
#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 .Как мне добиться работоспособности программы? |
Сообщ.
#4
,
|
|
|
Конечно, мы можем ещё копаться тут триста лет в мелочах ... а ты подумай "перпендикулярно" ... возьми Qt6 и просто начти программировать прикладную логику. Ну подумаешь +16Мб к исполняемому файлу ... ты же не эмбедер, лили да?
|