Fehlende rmchart.dll abfangen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Fehlende rmchart.dll abfangen

Beitrag von marcelx »

Hallo,

ich benutze gern rmchart und wollte das fehlenden von rmchart.dll in meine Programm abfangen.
Ich teste mit RMChart_MiniDemo.pb.
In RMChart.pbi wird eine Variable RMC_DLL definiert

Code: Alles auswählen

Global RMC_DLL.l
und das fehlende der dll abgefangen.

Code: Alles auswählen

  RMC_DLL.l = OpenLibrary(#PB_Any,#RMCDLL)
  If RMC_DLL
    ;{ GetFunction Add...
Ich wollte RMC_DLL verwenden um das Fehlende abzufangen.
Leider lässt sich RMChart_MiniDemo.pb nicht kompilieren.

EDIT: lässt sich als exe kompilieren und beim starten gibt MS die Meldung: "... funktioniert nicht mehr"

Hat jemand ein Idee?
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Fehlende rmchart.dll abfangen

Beitrag von NicTheQuick »

Wo hast du den Code her? Da sollte definitiv kein .l hinter RMC_DLL stehen, sondern .i.
Und wenn das an der Stelle schon falsch ist, dann ist es das bestimmt auch an anderen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Fehlende rmchart.dll abfangen

Beitrag von Kiffi »

marcelx hat geschrieben:ich benutze gern rmchart und wollte das fehlenden von rmchart.dll in meine Programm abfangen.
mit FileSize() kannst Du prüfen, ob die Datei vorhanden ist.

Grüße ... Peter
Hygge
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Fehlende rmchart.dll abfangen

Beitrag von marcelx »

Ich habe mit FileSize auch probiert - gleiche Effekt
Zuletzt geändert von marcelx am 24.02.2017 12:41, insgesamt 1-mal geändert.
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Fehlende rmchart.dll abfangen

Beitrag von marcelx »

In RMChart.pbi:

Code: Alles auswählen

  If FileSize(#RMCDLL) = -1
    ProcedureReturn
  EndIf
  RMC_DLL.l = OpenLibrary(#PB_Any,#RMCDLL)
in RMChart_MiniDemo.pb:

Code: Alles auswählen

Procedure Test()
  If FileSize(#RMCDLL) = -1
    ProcedureReturn
  EndIf
;   If RMC_CreateChart(WindowID(#ID_WINDOW), #ID_CHART, 0, 0, 800, 600) = #RMC_NO_ERROR
;     Debug "1"
;     RMC_AddRegion(#ID_CHART, 5, 5, -5, -5,"Test")
;     RMC_AddGrid(#ID_CHART, #ID_REGION)
;     RMC_AddXAxis(#ID_CHART, #ID_REGION, #RMC_XAXISBOTTOM)
;     RMC_AddYAxis(#ID_CHART, #ID_REGION, #RMC_YAXISLEFT)
;     RMC_AddXYSeries(#ID_CHART, #ID_REGION, ?LabX, 10, ?LabY, 10, #Black, #RMC_XY_LINE, #RMC_LSTYLE_SPLINE,0,0,0,0)
;     RMC_SetCaptionBGColor(#ID_CHART,#ID_REGION,0)
;     RMC_Draw(#ID_CHART)
;   EndIf
EndProcedure
So ist OK und wenn ich die Kommentar raus nehme, dann ist nicht OK

EDIT:
liegt daran, dass in RMChart.pbi die RMC_ -Funktion festgelegt werden

Code: Alles auswählen

F_RMC_CreateChart.P_RMC_CreateChart  = GetFunction(RMC_DLL,"RMC_CREATECHART")
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Fehlende rmchart.dll abfangen

Beitrag von Bisonte »

marcelx hat geschrieben:In RMChart.pbi:

Code: Alles auswählen

  If FileSize(#RMCDLL) = -1
    ProcedureReturn
  EndIf
  RMC_DLL.l = OpenLibrary(#PB_Any,#RMCDLL)
Nic sagte es schon : Nicht LONG sondern INTEGER ! RMC_DLL.I <--- !

Ich schätze diese Demo ist ein bisschen älter und eigentlich auch für x86 gemacht gewesen....
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Fehlende rmchart.dll abfangen

Beitrag von marcelx »

Nic sagte es schon : Nicht LONG sondern INTEGER ! RMC_DLL.I <--- !
Gut, habe ich geändert, hat aber kein Einfluss zu den Fehler.
Ich denke, der Compiler hat keine Adresse-Zuweisung für die Funktion (z.B. RMC_CreateChart), weil GetFunction nicht aufgerufen wurde.

EDIT: gibt es da eine Lösung?
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Fehlende rmchart.dll abfangen

Beitrag von mk-soft »

Die DLL ist eine 32bit Version.
Also das Programm auch als X86 kompilieren...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Fehlende rmchart.dll abfangen

Beitrag von marcelx »

Danke mk-soft
Also das Programm auch als X86 kompilieren...
mache ich die ganze Zeit.
Win-10, PB 5.31 (Windows - x86)
Antworten