Всем привет. Есть класс None с++ UE4 который должен подключать внешнюю библиотеку которая должнга выполнять подключение к базе данных, брать из нее данные и обмениваться с классом данными, вот ее код:
#//define _WIN32_WINNT 0x0A00 // Windows 10
#include "SimP/AuxillarySystems/DatabaseOperate/ConnectDB.h"
#include "SimP/AdditionalLibs/DBManager/DBManager.h" // Включаем заголовочный файл для доступа к функциям из DLL
// Определяем типы указателей на функции из DLL
typedef BOOL(*ConnectToDatabaseFunc)(SQLHENV*, SQLHDBC*);
typedef void (*DisconnectFromDatabaseFunc)(SQLHENV, SQLHDBC);
ConnectDB::ConnectDB() {
hDLL = LoadLibrary(TEXT("YourDLLName.dll")); // Загружаем DLL
if (hDLL == NULL) {
// Обработка ошибки загрузки DLL
}
}
ConnectDB::~ConnectDB() {
if (hDLL != NULL) {
FreeLibrary(hDLL); // Выгружаем DLL
}
}
bool ConnectDB::Connect() {
auto connectProc = GetProcAddress(hDLL, "ConnectToDatabase");
if (connectProc == NULL) {
// Обработка ошибки получения адреса функции из DLL
return false;
}
ConnectToDatabaseFunc connectFunc = reinterpret_cast<ConnectToDatabaseFunc>(connectProc);
SQLHENV hEnv;
SQLHDBC hDbc;
// Вызываем функцию подключения к базе данных
if (!connectFunc(&hEnv, &hDbc)) {
// Обработка ошибки подключения
return false;
}
// Выполните дополнительные действия, если нужно
return true;
}
void ConnectDB::Disconnect() {
auto disconnectProc = GetProcAddress(hDLL, "DisconnectFromDatabase");
if (disconnectProc == NULL) {
// Обработка ошибки получения адреса функции из DLL
return;
}
DisconnectFromDatabaseFunc disconnectFunc = reinterpret_cast<DisconnectFromDatabaseFunc>(disconnectProc);
SQLHENV hEnv; // Здесь нужно получить hEnv и hDbc из вашего класса, либо передать их как параметры в Disconnect
// Вызываем функцию отключения от базы данных
disconnectFunc(hEnv, NULL); // Передайте правильные параметры, если нужно
}
#pragma once
#include <windows.h> // Для использования типов данных и функций Windows API
#include <sql.h> // Для использования типов данных ODBC
#include "C:\Phyton\include\Python.h"
class ConnectDB {
public:
ConnectDB();
~ConnectDB();
bool Connect(); // Метод для подключения к базе данных
void Disconnect(); // Метод для отключения от базы данных
private:
HINSTANCE hDLL; // Дескриптор загруженной DLL
};
При компиляции сыпятся ошибки
Серьезность | Код | Описание | Проект | Файл | Строка | Состояние подавления | Подробности |
---|---|---|---|---|---|---|---|
Ошибка | C4668 | _WIN32_WINNT_WIN10_RS1 не задано как макроопределение препроцессора, замена на 0 для #if/#elif | SimP | C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h | 15657 | ||
Ошибка | C4668 | _WIN32_WINNT_WIN10_RS4 не задано как макроопределение препроцессора, замена на 0 для #if/#elif | SimP | C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h | 15429 | ||
Ошибка | C4668 | _WIN32_WINNT_WIN10_RS4 не задано как макроопределение препроцессора, замена на 0 для #if/#elif | SimP | C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h | 15416 | ||
Ошибка | C4668 | _WIN32_WINNT_WIN10_RS3 не задано как макроопределение препроцессора, замена на 0 для #if/#elif | SimP | C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h | 15266 | ||
Ошибка | C4668 | _WIN32_WINNT_WIN10_RS2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif | SimP | C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h | 15147 | ||
Ошибка | C4668 | _WIN32_WINNT_WIN10_RS3 не задано как макроопределение препроцессора, замена на 0 для #if/#elif | SimP | C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h | 15128 | ||
и тому подобное, их 27 штук |
Проблема включением define не решается, ошибки остаются