Hello everyone. Who can please help? There is an empty None c++ class that should connect to an external dll and execute code in it and exchange data. Here is his code:
#//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
};
And there are errors during compilation:
|Ошибка|C4668|_WIN32_WINNT_WIN10_TH2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10229|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS1 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10235|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_TH2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10240|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_TH2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10244|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10251|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10261|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_TH2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10265|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS3 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10270|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS4 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10277|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS1 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10280|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS4 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10283|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS1 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10288|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS5 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10291|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS2 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10486|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS5 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|10510|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS5 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|13950|||
|Ошибка|C4668|_WIN32_WINNT_WIN10_RS3 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|15111|||
|Ошибка|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|||
|Ошибка|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|15266|||
|Ошибка|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_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_RS1 не задано как макроопределение препроцессора, замена на 0 для #if/#elif|SimP|C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um\winioctl.h|15657|||
include
#define define _WIN32_WINNT 0x0A00 // Windows 10
not working
the project itself is exposed to the Desktop and Windows platforms