Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
подключить-как-dll-через-loadlibrary [2020/04/15 22:00] iserbin |
подключить-как-dll-через-loadlibrary [2020/04/16 12:25] iserbin [Общее описание] |
||
---|---|---|---|
Строка 25: | Строка 25: | ||
| 3| Нет ответа от весов. Возможно: \\ 1. Проверьте правильность выбора типа весов, СОМ-порта и скорость СОМ-порта. \\ 2. Некоторые весы не передают вес, если он меньше ли равен НУЛЮ. \\ 3. На некоторых весах нужно настроить специальные параметры, чтоб узнать как настроить нажмите кнопку "Что нужно настроить в весах"в программе настройки драйвера.| | | 3| Нет ответа от весов. Возможно: \\ 1. Проверьте правильность выбора типа весов, СОМ-порта и скорость СОМ-порта. \\ 2. Некоторые весы не передают вес, если он меньше ли равен НУЛЮ. \\ 3. На некоторых весах нужно настроить специальные параметры, чтоб узнать как настроить нажмите кнопку "Что нужно настроить в весах"в программе настройки драйвера.| | ||
| 4| Ошибка в цене, например число меньше нуля, или больше чем к-во разрядов на весах.| | | 4| Ошибка в цене, например число меньше нуля, или больше чем к-во разрядов на весах.| | ||
- | | 5| Текущий тип весов не поддерживает команды, например, не на все типы моделей можно передать цену, или нажать "ТАРА". | | + | | 5| Текущий тип весов не поддерживает команду, например, не на все модели весов можно передать цену, или нажать "ТАРА". | |
| 6| Связь с весами ОК, но отсутствует лицензия на драйвер. Без лицензии можно получить вес в диапазонах: [80..110 г.] [2..3 кг.] [19..22 кг.] [95..105 кг.]| | | 6| Связь с весами ОК, но отсутствует лицензия на драйвер. Без лицензии можно получить вес в диапазонах: [80..110 г.] [2..3 кг.] [19..22 кг.] [95..105 кг.]| | ||
| 7| На весах "Перегруз". (Некоторые модели весов передают такую информацию)| | | 7| На весах "Перегруз". (Некоторые модели весов передают такую информацию)| | ||
Строка 32: | Строка 32: | ||
Порядок вызовов функций: после загрузки UniproScalesComServer.dll в программу нужно вызвать функцию: **vr1**, после этого можно вызывать все другие функции (gw1, pp1, pt1) в любом порядке. | Порядок вызовов функций: после загрузки UniproScalesComServer.dll в программу нужно вызвать функцию: **vr1**, после этого можно вызывать все другие функции (gw1, pp1, pt1) в любом порядке. | ||
- | ===== Пример на c# ===== | + | ===== Пример на C# ===== |
<code csharp> | <code csharp> | ||
using System; | using System; | ||
Строка 203: | Строка 203: | ||
#include <stdio.h> | #include <stdio.h> | ||
- | typedef long (__stdcall *dllScalesInit)(); | + | typedef long(__stdcall *dllScalesInit)(); |
typedef long(__stdcall *dllScalesGetWeight)(int p_scales, | typedef long(__stdcall *dllScalesGetWeight)(int p_scales, | ||
- | double & p_weight, | + | double & p_weight, |
- | double & p_price, | + | double & p_price, |
- | double &p_cost, | + | double &p_cost, |
- | long &p_stab); | + | long &p_stab); |
typedef long(__stdcall *dllScalesSendPrice)(int p_scales, int p_price); | typedef long(__stdcall *dllScalesSendPrice)(int p_scales, int p_price); | ||
typedef long(__stdcall *dllScalesPressT)(int p_scales); | typedef long(__stdcall *dllScalesPressT)(int p_scales); | ||
Строка 214: | Строка 214: | ||
///////////////////////////// | ///////////////////////////// | ||
// Global variables | // Global variables | ||
- | HMODULE global_hLib; | + | HMODULE global_hLib; |
dllScalesInit global_ScalesInit; | dllScalesInit global_ScalesInit; | ||
dllScalesGetWeight global_ScalesGetWeight; | dllScalesGetWeight global_ScalesGetWeight; | ||
dllScalesSendPrice global_ScalesSendPrice; | dllScalesSendPrice global_ScalesSendPrice; | ||
dllScalesPressT global_ScalesPressT; | dllScalesPressT global_ScalesPressT; | ||
- | |||
- | |||
- | void(*pFunction)(int, int); | ||
int main() | int main() | ||
Строка 229: | Строка 226: | ||
if (global_hLib == NULL) | if (global_hLib == NULL) | ||
{ | { | ||
- | printf("Ошибка загрузки DLL."); | + | printf("Error load DLL."); |
return 1; | return 1; | ||
} | } | ||
- | |||
global_ScalesInit = (dllScalesInit)GetProcAddress(global_hLib, "vr1"); | global_ScalesInit = (dllScalesInit)GetProcAddress(global_hLib, "vr1"); | ||
Строка 239: | Строка 235: | ||
global_ScalesPressT = (dllScalesPressT)GetProcAddress(global_hLib, "pt1"); | global_ScalesPressT = (dllScalesPressT)GetProcAddress(global_hLib, "pt1"); | ||
- | if (!global_ScalesInit || | + | if ( !global_ScalesInit || |
!global_ScalesGetWeight || | !global_ScalesGetWeight || | ||
!global_ScalesSendPrice || | !global_ScalesSendPrice || | ||
!global_ScalesPressT) | !global_ScalesPressT) | ||
{ | { | ||
- | printf("Ошибка загрузки функций DLL."); | + | printf("Error functions from DLL."); |
return 2; | return 2; | ||
} | } | ||
Строка 250: | Строка 246: | ||
global_ScalesInit(); | global_ScalesInit(); | ||
- | int res1 = 0; | + | int res1 = 0; |
double lv_weight; | double lv_weight; | ||
double lv_price; | double lv_price; | ||
Строка 262: | Строка 258: | ||
if (!res1) | if (!res1) | ||
{ | { | ||
- | printf("Вес: %6.3f; Цена:%6.2f; Стоимость: %6.2f; Стабильно: %d.\r\n", | + | printf("Weight: %6.3f; Price:%6.2f; Cost: %6.2f; Stab: %d.\r\n", |
lv_weight, lv_price, lv_cost, lv_stab); | lv_weight, lv_price, lv_cost, lv_stab); | ||
} | } | ||
Строка 274: | Строка 270: | ||
FreeLibrary(global_hLib); | FreeLibrary(global_hLib); | ||
+ | printf("Press [ENTER]\r\n"); | ||
+ | getchar(); | ||
return 0; | return 0; | ||
} | } | ||
</code> | </code> | ||