DLL Problem
Übersicht

![]() |
BigmichiBetreff: DLL Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was mach ich falsch ? DLL und Functions adresse sidn da o.O
BlitzBasic: [AUSKLAPPEN] Local dll :Int =LoadLibraryA(\"comctl32.dll\") Danke schonmals =) |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Was läuft denn bei dir falsch? Abgesehen davon das bei mir LPSDingsBumsXYZ(Ist das der Fehler!?) nicht da ist, gibt es noch kleinere Verbesserungsvorschläge. Code: [AUSKLAPPEN] Strict Local dll :Int =LoadLibraryA("comctl32.dll") Global InitCommonControlsEx(LPS:Byte Ptr)"Win32"=GetProcAddress(dll,"InitCommonControlsEx") Local LPS:LPINITCOMMONCONTROLSEX = New LPINITCOMMONCONTROLSEX LPS.dwICC = ICC_STANDARD_CLASSES LPS.dwsize = SizeOf(LPS) Print InitCommonControlsEx(LPS) 1 : Um die Addy aus der DLL zu bekommen, empfehle ich diese Art. Übersichtlicher. 2 : Wenn eine DLL einen Pointer auf Struktur oder sonstigen Datentyp verlangt, Byte Ptr nehmen. In einem Bmax Byte Ptr kann man jede Art von Pointer(Int,float,Type,Funktion usw.) drin speichern und wieder zurückcasten. Kleines Beispiel: Code: [AUSKLAPPEN] Strict Local TestWert = 100 Print TestWert Test(Varptr TestWert) Print TestWert Test(Varptr TestWert) Print TestWert Function Test(Wert:Byte Ptr) Local Temp:Int Ptr = Int Ptr(Wert) Var Temp:+100 End Function Wenn also Externe Funktionen aus DLL oder Lib Pointer als Funktionsparameter erwarten, immer :byte ptr nehmen. Eine Type Instanz(Wie in deinem Code) ist schon ein Ptr. Daher kannst du bei der Übergabe auf varptr verzichten. 3 : Sagen was der Fehler ist!!!!!!!!!!!!!! Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm nun hab ich es genauso gemacht wie du es gesagt hast nur bei mir kommt immer 0 Zurück also False....
Code: [AUSKLAPPEN] Local dll :Int =LoadLibraryA("comctl32.dll")
Global InitCommonControlsEx2(LPS:Byte Ptr)"Win32"=GetProcAddress(dll,"InitCommonControlsEx") local LPS:LPINITCOMMONCONTROLSEX = New LPINITCOMMONCONTROLSEX LPS.dwICC = ICC_STANDARD_CLASSES LPS.dwsize = sizeOf(LPS) print InitCommonControlsEx2(LPS) es sollte aber True zurück kommen o.O normalerweise... Hier der Type dazu zum testen mal... Code: [AUSKLAPPEN] Type LPINITCOMMONCONTROLSEX
Field dwSize Field dwICC EndType |
||
![]() |
Suco-XBetreff: ........ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Wenigstens kannst du dir sicher sein das es kein Programmfehler mehr ist ![]() Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
das is gut ![]() ![]() Hoffe jemand fidneet nen Rat für mich =) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group