| |
|
|
- Seite 1 - |
|
Stephan Sonneborn | Hallo Freunde,
mir ist da was komisches aufgefallen: wenn man die SKControl.DLL VOR der ListView.DLL lädt, läuft das kleine Beispiel-Programm. Wenn man die Reihenfolge umkehrt, stürzt der Interpreter ab (Runtime hab ich nicht getestet). Das liegt übrigens weder an der 11er noch an der 12er XProfan Version, denn beide verhalten sich gleich...
Kann sich das jemand erklären? Überschreiben sich die DLLs gegenseitig den Speicher (also die SKControl.DLL den Speicherbereich der Listview.DLL)?
$I SKCONTROL.INC
'Wenn die ListView.DLL VOR der SKControl.DLL geladen wird, stürzt XPROFAN ab.
'VAR LVDLL& = USEDLL("LISTVIEW.DLL")
VAR SKDLL& = USEDLL("SKCONTROL.DLL")
VAR LVDLL& = USEDLL("LISTVIEW.DLL")
SKCtrl_InitDll()
CLS
VAR Test$ = "Ich bin ein SKControl-Edit"
VAR Edit& = SKCtrl_CreateColorEdit(%HWND,ADDR(Test$), RGB(000,000,000) , RGB(255,000,000),10,10,100,20,%hInstance)
WAITINPUT
SKCtrl_InitDll()
FREEDLL SKDLL&
FREEDLL LVDLL&
END
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 10.03.2011 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
Stephan Sonneborn | Ach ja... manchmal sieht man den Wald vor lauter Bäumen nicht...
Ich hab die SKCtrl_InitDLL() in die Include verbaut und brauch mich dann nicht zu wundern, wenns nicht geht, bevor die DLL geladen ist...
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 10.03.2011 ▲ |
|
|
|
|
|
Thomas Freier | Verwende Beides seit Jahren ohne Probleme. Neueste Versionen vorhanden? Der Aufbau bei mir in der Regel (Pfade anpassen):
Var old_file$ = GetDir$("@")'$ProgDir'
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Franks ListView
Declare lvdll&, ilist&,anzahl&,ndll&
lvdll&=usedll(old_file$+"\\Lib\\Listview.dll")
$I Include\Listview_Funktionen.inc
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SKControl.DLL - Funktionen definieren...
$I Include\SKControl.inc
var hdll& = UseDll(old_file$+"\\Lib\\SKControl.dll")
SKCtrl_InitDll()
var skfb& = SKCtrl_RGB(150,200,200)
cls
var listview&=CreateListview(%hwnd,%hinstance,0,Rgb(255,255,255),-1,$31)
BuildListview(listview&,6,30,80,0)
ShowListview(listview&,10,100,400,300)
VAR Test$ = "Ich bin ein SKControl-Edit"
VAR Edit& = SKCtrl_CreateColorEdit(%HWND,ADDR(Test$), RGB(000,000,000) , RGB(255,000,000),10,10,100,20,%hInstance)
WaitInput
$I Include\Listview_Dispose.inc
FreeDLL lvdll&
SKCtrl_DeInitDll()
FreeDll hDll&
end
|
|
|
| |
|
|
|
Stephan Sonneborn | Stephan Sonneborn (10.03.11)
mir ist da was komisches aufgefallen: wenn man die SKControl.DLL VOR der ListView.DLL lädt, läuft das kleine Beispiel-Programm.
Die Lösung ist ganz einfach: Es lag an Einfügestelle der Include SKControl. Wenn diese NACH dem DLL-Aufruf kommt,ist die Lade-Reihenfolge der DLLs egal.
'So gehts...'
VAR LVDLL& = USEDLL(GETDIR$("@") + "\\LISTVIEW.DLL")
VAR SKDLL& = USEDLL(GETDIR$("@") + "\\SKCONTROL.DLL")
'VAR LVDLL& = USEDLL(GETDIR$("@") + "\\LISTVIEW.DLL")
$I SKCONTROL.INC
SKCtrl_InitDll()
CLS
VAR Test$ = "Ich bin ein SKControl-Edit"
VAR Edit& = SKCtrl_CreateColorEdit(%HWND,ADDR(Test$), RGB(000,000,000) , RGB(255,000,000),10,10,100,20,%hInstance)
WAITINPUT
SKCtrl_DeInitDll()
FREEDLL SKDLL&
FREEDLL LVDLL&
END
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 10.03.2011 ▲ |
|
|
|
|
Stephan Sonneborn | Thomas Freier (10.03.11)
Verwende Beides seit Jahren ohne Probleme. Neueste Versionen vorhanden?
Hallo Thomas,
ja, neueste Versionen sind installiert. Schmiert denn das obige Listing bei Dir auch ab, wenn die SKControl.DLL nach der ListView.DLL geladen wird und die Include vor beiden aufgerufen wird? |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 10.03.2011 ▲ |
|
|
|
|
Stephan Sonneborn | Ach ja... manchmal sieht man den Wald vor lauter Bäumen nicht...
Ich hab die SKCtrl_InitDLL() in die Include verbaut und brauch mich dann nicht zu wundern, wenns nicht geht, bevor die DLL geladen ist...
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 10.03.2011 ▲ |
|
|
|