Инструменты пользователя

Инструменты сайта


подключить-как-dll-через-loadlibrary

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
подключить-как-dll-через-loadlibrary [2020/04/15 22:00]
iserbin
подключить-как-dll-через-loadlibrary [2020/04/16 14:16]
iserbin [Пример на C++]
Строка 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 load 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>​
  
подключить-как-dll-через-loadlibrary.txt · Последние изменения: 2020/04/18 00:01 — iserbin