Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 15.06.2010, 19:13 Titel: Dll mit Asm-code |
|
|
Hallo, kann mir einer mal eine Dll zeigen, wo ein Asm-code drin ist , der 2 Zahlen mit Asm addiert und wieder zurück gibt?
Die 2 Zahlen zum Addieren sollen an die Dll übergeben werden.
Danke.
Wie werden eigentlich Zeiger übergeben an eine Dll, wenn die Dll zb Werte ändern soll , worauf der Zeiger Zeigt.
Und wie weeden Zeiger von einer Dll zurück gegeben.
Danke.
Gruss |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 15.06.2010, 20:46 Titel: |
|
|
Ob DLL oder nicht ist eigentlich relativ egal, mal ein Beispiel:
myLib.bas (mit fbc -dll compilieren)
Code: | Declare Function myLibAdd Lib "myLib" Alias "myLibAdd" (ByRef a As Integer, ByRef b As Integer) As Integer
Declare Function myLibChange Lib "myLib" Alias "myLibChange" (c As Integer Ptr) As Integer
Function myLibAdd (ByRef a As Integer, ByRef b As Integer) As Integer Export
Asm
mov esi, [a]
mov eax, [esi]
mov esi, [b]
mov ebx, [esi]
Add eax, ebx
mov [Function], eax
End Asm
End Function
Function myLibChange (c As Integer Ptr) As Integer Export
Asm
mov esi, [c]
mov eax, [esi]
Add eax, 10
mov [esi], eax
mov [Function], eax
End Asm
End Function
|
myLib.bi
Code: | Declare Function myLibAdd Lib "myLib" Alias "myLibAdd" (ByRef a As Integer, ByRef b As Integer) As Integer
Declare Function myLibChange Lib "myLib" Alias "myLibChange" (c As Integer Ptr) As Integer
|
myProg.bas
Code: | #Include "myLib.bi"
Dim As Integer a, b
Dim As Integer Ptr c = @a
a = 5
b = 7
Print a, b, *c
Print
Print myLibAdd(a, b)
Print
Print a, b, *c
Print
Print myLibChange(c)
Print
Print a, b, *c
Sleep
|
Macht also keinen Unterschied, bis auf den nötigen Zugriff auf die DLL. |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 15.06.2010, 23:14 Titel: |
|
|
Jup, danke.
Läuft 100%wunderbar mit "RapidQ2" als Dll.
Klasse.
Gruss |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 16.06.2010, 14:15 Titel: |
|
|
Könnt ihr mal aufhören auf funkelds Mist einzugehen!? |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 16.06.2010, 18:44 Titel: |
|
|
kannst du ma aufhören dumme posts zu posten? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 17.06.2010, 15:51 Titel: |
|
|
Danke für deine Unterstützung MisterD.
Gruss |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 21.06.2010, 23:26 Titel: |
|
|
Eben. Solang er nicht fragt wie man das Internet downloaded ist doch alles okay  |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 22.06.2010, 11:30 Titel: |
|
|
Ich glaube das hat 28398 schon einmal gemacht.
Gruss |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 22.06.2010, 16:42 Titel: |
|
|
@PMedia: Dieser Klassiker kommt wirklich immer wieder gut  |
|
Nach oben |
|
 |
|