Prośba o pomoc c++ vs Delphi

Odpowiedz Nowy wątek
2019-04-26 18:45
0

proszę o pomoc w takiej sprawie :
mam deklarację

POSBRIDGE_API PB_FN_RES WINAPI Initialization(
    LPCTSTR storage_path,
    LPCTSTR connection_params,
    LPCTSTR tid,
    FnAppsProcessInfo* ProccessInfoCallback = NULL,
    UINT transmission_timeout = 30,
    BOOL loging_to_file = FALSE,
    UINT report_data_cleaning_depth = 7);

PB_FN_RES - to typ wyliczeniowy

w delphi zrobiłem tak :

function PInitialization(storage_path:PAnsiChar;
                             connection_params:PAnsiChar;
                             tid:PAnsiChar;
                             ProccessInfoCallback:PeFnAppsProcessInfo;
                             transmission_timeout:UINT;
                             loging_to_file:BOOL;
                             report_data_cleaning_depth:UINT):PB_FN_RES;cdecl external 'Brige.dll' name 'Initialization';

ale jakoś nie chce nawet znaleźć tej funkcji w dll
Może coś jest źle w tym wywołaniu w delphi ?? Proszę o pomoc.

edytowany 1x, ostatnio: furious programming, 2019-04-26 18:50

Pozostało 580 znaków

2019-04-26 21:04
0

na poniedziałek coś już muszę mieć działającego

Dobrze, że chociaż dałeś termin do poniedziałku. Dzisiaj, w innym wątku (który coś czuję, że będzie hitem kwietnia, a może i całego 2019) OP dał termin do godziny 20. Dla osób niewtajemniczonych - chodzi o https://4programmers.net/Forum/1586757, chociaż ogólnie polecam przeczytać cały wątek, jest cudowny :D


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say

Pozostało 580 znaków

2019-04-26 21:37
1

nie dawałem terminu, to tylko moje zobowiązanie ;) ja proszę o pomoc i jestem wdzięczny za zainteresowanie :)
Sprawdziłem to co kolega Robert podpowiedział i faktycznie te funkcje zmiana nazwy funkcji na to co wyświetla TDUMP troche pomogło.
Teraz funkcja jest wywoływana ale cosik nie tak dalej z tymi parametrami. HeadConv zrobił troche sieczkę z tych funkcji.
Tak więc prośba aktualna - jak ktoś z Was wie jak dobrze zadeklarować ta funkcję w Delphi to proszę o pomoc.

Pozostało 580 znaków

2019-04-26 21:42
0

Biorąc od uwagę LPCTSTR oczekiwałbym, że funkcja ma dwie nazwy InitializationA i InitializationW. Pomocne może być zbadanie za pomocą Dependency Walker lub chociażby podglądnięcie binarki jakimś sensownym edytorem.

Pozostało 580 znaków

2019-04-26 21:42
1
cerrato napisał(a):

na poniedziałek coś już muszę mieć działającego

Dobrze, że chociaż dałeś termin do poniedziałku. Dzisiaj, w innym wątku (który coś czuję, że będzie hitem kwietnia, a może i całego 2019) OP dał termin do godziny 20. Dla osób niewtajemniczonych - chodzi o https://4programmers.net/Forum/1586757, chociaż ogólnie polecam przeczytać cały wątek, jest cudowny :D

Przeczytałem ten wątek i chyba jednak troche niesprawiedliwe z Twojej strony - nie dałem nikomu terminu. To mój problem, że muszę to mieć w poniedziałek.

Napisałem to bardziej w formie żartu i z przymrużeniem oka. Zresztą przeczytaj proszę ten wpis - https://4programmers.net/Forum/1586856 - chwaliłem Cię tam i podałem jako przykład "kulturalnego pytającego". Jeśli poczułeś się urażony to przepraszam, nie to miałem na celu. - cerrato 2019-04-26 22:17

Pozostało 580 znaków

2019-04-26 22:28
0

nie ma problemu ;) nikt się nie obraża.

Wracajac do senda - to już wiem jak to powinno być i prawie działa.
Program kompletnie się wiesza bez komunikatu przy FreeLibrary :(
Może w tym temacie ktoś pomoże ??

edytowany 2x, ostatnio: furious programming, 2019-04-26 22:50

Pozostało 580 znaków

2019-04-26 22:50
0

Pokaż kod korzystający z tej biblioteki – jej załadowanie, ładowanie funkcji i jej wywołanie.


edytowany 1x, ostatnio: furious programming, 2019-04-26 22:51

Pozostało 580 znaków

2019-04-26 22:57
0

tak testuje działanie tej biblioteki :

procedure TForm1.Button1Click(Sender: TObject);
var       inic:TePInitialization;
          h:Cardinal;
          x:PB_FN_RES;
          synch:TePSynchronize;
          close:TePClose;
          _path:WideString;
          _param:WideString;
          _tid:WideString;
          g:TeGetPosBridgeVersion;
          MajorVersion: Word;
          MinorVersion: Word;
          BuildNumber: Word;
          RevisionNumber: Word;

begin
  h:=LoadLibrary('PosBridge.dll');
  if h<>0 then
   begin
   @g:=GetProcAddress(h, '[email protected]');
   if @g=nil then
    begin
    end
   else
    begin
     x:=g(MajorVersion,MinorVersion,BuildNumber,RevisionNumber);
     if x=PB_FR_OK then
      begin
      end;
    end;

   @inic := GetProcAddress(h, '[email protected]');
    if @inic = nil then
     begin
      { function not found.. misspelled? }
      ShowMessage ('blub');
     end
    else
     begin
      { call the function as usually }
      _path:='c:\Temp\';
      _param:='interface=ETH comm_port=5010 broadcast_port=5000';
      _tid:='';
      _tid:=Edit1.Text;
      x := inic(_path,_param,_tid,nil,10,True,7);
      if x=PB_FR_OK then
       begin
        @synch := GetProcAddress(h, '[email protected]');
        if @synch=nil then
         begin
          ShowMessage('no synchronize');
         end
        else
         begin
          x:=synch();
          if x=PB_FR_OK then
           begin
            ShowMessage('Synchronize ok');
           end;
         end;
       end;
      @close:=GetProcAddress(h,'[email protected]');
      if @close=nil then
       begin
        ShowMessage('dupa');
       end
      else
       begin
        x:=close();
        if x=PB_FR_OK then
         begin
         end;
       end;
     end;
    { unload the DLL }

     if FreeLibrary(h) then ShowMessage('Free ok');
   end
end;
edytowany 2x, ostatnio: furious programming, 2019-04-26 23:35

Pozostało 580 znaków

2019-04-27 08:34
0

Trochę znam ten temat, ale nie używałem gotowych bibliotek. Komunikację z terminalem zrobiłem w oparciu o komponenty Indy

Pozostało 580 znaków

2019-04-27 10:34
0

dostałem dll od ePlatnosci, zakładałem że będzie śmigać bez problemów (np dll do drukarek POSNET działają super i są dobrze opisane). Tutaj teoretycznie się połączyłem, funkcja synchronizacji działa ale już ConnectionTest daje TimeOut. poza tym opis jest dość skromny.
Twoja komunikacja przez Indy to dużo roboty, jest gdzies jakiś opis takiej komunikacji ??

Pozostało 580 znaków

2019-04-27 10:38
0

@TestowyAPI:
Oprogramowanie transmisji zajęło mi dwa dni.
Opis protokołu dostałem z PeP

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0