Добрый день!
Та же проблема подключения к терминалу.
Внешние транзакции включены.
Ваш пример проверял, работает. Подключаюсь к Quik версия 7.19.0.51
Проблема в том, что result выдает "2", TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND.
Подскажите пожалуйста, что делаю не так.
#include<Windows.h>
#include<iostream>
using namespace std;
long __stdcall TRANS2QUIK_CONNECT(LPCSTR lpcstrConnectionParamsString, long* pnExtendedErrorCode, LPSTR lpstrErrorMessage, DWORD dwErrorMessageSize);
int main()
{
typedef long(*TRANS2QUIK_CONNECT)(LPCSTR lpcstrConnectionParamsString, long* pnExtendedErrorCode, LPSTR lpstrErrorMessage, DWORD dwErrorMessageSize);
TRANS2QUIK_CONNECT pfnTRANS2QUIK_CONNECT;
HINSTANCE hMyDll;
// грузим нашу DLL
hMyDll = LoadLibrary("trans2quik.dll");
if (!hMyDll)
{
// ошибка, невозможно загрузить DLL
MessageBox(NULL,"Error","trans2quik.dll - невозможно загрузить DLL", MB_OK | MB_ICONHAND);
}
else
{
// берем адрес функции
pfnTRANS2QUIK_CONNECT =(TRANS2QUIK_CONNECT)GetProcAddress(hMyDll, "TRANS2QUIK_CONNECT");
if (!pfnTRANS2QUIK_CONNECT)
{
// ОШИБКА : не найдена такая функция
MessageBox(NULL, "Error", "TRANS2QUIK_CONNECT() - не найдена такая функция", MB_OK | MB_ICONHAND);
}
else
{
LPCSTR lpcstrConnectionParamsString = "C:\QuikFinam";
long pnExtendedErrorCode;
LPSTR lpstrErrorMessage="";
DWORD dwErrorMessageSize=0;
// вызов функции result
long result = pfnTRANS2QUIK_CONNECT(lpcstrConnectionParamsString, &pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize);
cout << pnExtendedErrorCode << endl;
cout << result << endl;
cout << dwErrorMessageSize << endl;
}
// освобождаем DLL
FreeLibrary(hMyDll);
}
system("pause");
return 0;
}
Та же проблема подключения к терминалу.
Внешние транзакции включены.
Ваш пример проверял, работает. Подключаюсь к Quik версия 7.19.0.51
Проблема в том, что result выдает "2", TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND.
Подскажите пожалуйста, что делаю не так.
#include<Windows.h>
#include<iostream>
using namespace std;
long __stdcall TRANS2QUIK_CONNECT(LPCSTR lpcstrConnectionParamsString, long* pnExtendedErrorCode, LPSTR lpstrErrorMessage, DWORD dwErrorMessageSize);
int main()
{
typedef long(*TRANS2QUIK_CONNECT)(LPCSTR lpcstrConnectionParamsString, long* pnExtendedErrorCode, LPSTR lpstrErrorMessage, DWORD dwErrorMessageSize);
TRANS2QUIK_CONNECT pfnTRANS2QUIK_CONNECT;
HINSTANCE hMyDll;
// грузим нашу DLL
hMyDll = LoadLibrary("trans2quik.dll");
if (!hMyDll)
{
// ошибка, невозможно загрузить DLL
MessageBox(NULL,"Error","trans2quik.dll - невозможно загрузить DLL", MB_OK | MB_ICONHAND);
}
else
{
// берем адрес функции
pfnTRANS2QUIK_CONNECT =(TRANS2QUIK_CONNECT)GetProcAddress(hMyDll, "TRANS2QUIK_CONNECT");
if (!pfnTRANS2QUIK_CONNECT)
{
// ОШИБКА : не найдена такая функция
MessageBox(NULL, "Error", "TRANS2QUIK_CONNECT() - не найдена такая функция", MB_OK | MB_ICONHAND);
}
else
{
LPCSTR lpcstrConnectionParamsString = "C:\QuikFinam";
long pnExtendedErrorCode;
LPSTR lpstrErrorMessage="";
DWORD dwErrorMessageSize=0;
// вызов функции result
long result = pfnTRANS2QUIK_CONNECT(lpcstrConnectionParamsString, &pnExtendedErrorCode, lpstrErrorMessage, dwErrorMessageSize);
cout << pnExtendedErrorCode << endl;
cout << result << endl;
cout << dwErrorMessageSize << endl;
}
// освобождаем DLL
FreeLibrary(hMyDll);
}
system("pause");
return 0;
}