1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| with BinContVar do begin if DLLlog=1 then begin assignfile(CLOG,'externeDLL.log'); rewrite(CLOG); end;
if not assigned(externeDLL) then try DllHandle:=LoadLibrary(pchar(BinContVar.dllname)); except on E: Exception do begin MessageDlg('Fehler beim Laden der Dll:'+#13+E.Message, mtError, [mbOk], 0); exit; end; end; if DLLlog=1 then writeln(CLOG,'Loaded library ',BinContVar.dllname,' sucesfully!'); try @externeDLL:=GetProcAddress(DllHandle, 'externeDLL'); except on E: Exception do begin MessageDlg('Fehler beim Import von externeDLL aus der Dll:'+#13+E.Message, mtError, [mbOk], 0); exit; end else MessageDlg('Nicht abgefangener Fehler beim Funktionsimport aus Regler-DLL',mtError,[mbOk],0); end; if @externeDLL<>nil then begin if DLLlog=1 then writeln(CLOG,'Imported function externeDLL from ',BinContVar.dllname,' sucesfully!'); end else begin if DLLlog=1 then writeln(CLOG,'ERROR -- function externeDLL could not be loaded from ',BinContVar.dllname,'!'); ShowMessage('Funktion externeDLL in '+BinContVar.dllname+' nicht vorhanden.'); if DLLlog=1 then closefile(CLOG); halt; end; BinContVar.flag := 0;
writeavrSwap(avrSwap);
if BinContVar.DLLlog=1 then begin writeln(BinContVar.CLOG,'variable values before call of externeDLL!'); externeDLLLog; end; sleep(1); try BinContVar.externeDLL(avrSwap,aviFail,accINFILE,avcOUTNAME,avcMSG); except on E: Exception do begin MessageDlg('Error calling procedure externeDLL from Dll:'+#13+E.Message, mtError, [mbOk], 0); end; BinContVar.flag := 1; if BinContVar.DLLlog=1 then begin writeln(BinContVar.CLOG,'variable values after call of externeDLL!'); externeDLLLog; end; |