Unhandled memory Exception Error
Übersicht

hamztataBetreff: Unhandled memory Exception Error |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Diese Fehlermeldung bekomme ich bei folgendem Code.
Code: [AUSKLAPPEN] Global xCreateImageEx_%(textures:Byte Ptr,width%,height%,flags%) "win32"
xCreateImageEx_ = GetProcAddress(lib,"CreateImageEx_") Type FI_SurfacesType Field Count% Field Array%[256] Field Texture% End Type Global FI_Surfaces:FI_SurfacesType = New FI_SurfacesType Function xCreateImageEx% (texture%, width%, height%, imageFlags%=FI_AUTOFLAGS) If texture<>0 Then FI_Surfaces.Texture = texture FI_Surfaces.Count = xGetTextureFrames(texture) If FI_Surfaces.Count>0 Then If FI_Surfaces.Count>256 Then FI_Surfaces.Count=256 For i=0 To FI_Surfaces.Count-1 FI_Surfaces.Array[i] = xGetTextureSurface(texture, i) Next Return xCreateImageEx_(FI_Surfaces, width, height, imageFlags) EndIf EndIf Return 0 End Function bei dieser zeile bleibt der debugger stehen: Code: [AUSKLAPPEN] Return xCreateImageEx_(FI_Surfaces, width, height, imageFlags)
xGetTextureFrames(texture) und xGetTextureSurface(texture, i) gibt int zurück, und xCreateImageEx_(FI_Surfaces, width, height, imageFlags) ist ein dll aufruf sollte soweit alles erklären. Hat denke ich eventuell mit der Type Übergabe zu tun. Eventuell kann man da was anderes machen, bräuchte da mal euren Rat. Weiß eben nicht ob das mit Byte Ptr die beste Lösung ist. Konnte ja zumindest den Bug bei mir soweit eingrenzen. Wobei ich nichtmal genaus weiß, was diese Fehlermeldung genau heißt. |
||
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo hamztata.
Erstmal: Wenn du bei Program/Build Options den "Debug Mode" einstellst, braucht dein Code zwar länger zum kompilieren, allerdings wird dir bei einem Error auch eine "richtige" Fehlermeldung ausgegeben. Code: [AUSKLAPPEN] Global xCreateImageEx_%(textures:Byte Ptr,width%,height%,flags%) "win32"
Vielleicht kenne ich mich zu wenig aus, aber was soll diese Zeile bewirken? Global leitet doch eine Variable ein, und du definierst eine Funktion als Variable? Du meintest eher: Code: [AUSKLAPPEN] Global BlaBla = xCreateImageEx_%(textures:Byte Ptr,width%,height%,flags%) "win32"
Was bedeutet das "win32"? MFG Lador |
||
Mein aktuelles Projekt:
2D-Rollenspiel "Iliran" Screenshot | Worklog Fortschritt: ca. 70% |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die zeile ist korrekt, es definiert eine Globale Variable als Funktions-Pointer. | ||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das "win32" ist ein extern verweis, wegen dem GetProcAdress und mit LoadLibraryA wird die dll geladen.
Die syntax ist schon vollkommn richtig, nur eben mit den datentypen hauts es nicht hin. und Code: [AUSKLAPPEN] Unhandled memory Exception Error ist die "richtige" Fehlermeldung im debug modus.
ich nehme an, daß die übergabe des types mit :byte ptr nicht richtig hinhaut. aber gibts denn da auch eine andere möglichkeit? so schauts in bb aus.... Code: [AUSKLAPPEN] xCreateImageEx_% (texures*, width%, height%, flags%) : "CreateImageEx_"
Code: [AUSKLAPPEN] Type FI_SurfacesType
Field Count% Field Array%[256] Field Texture% End Type Global FI_Surfaces.FI_SurfacesType = New FI_SurfacesType Function xCreateImageEx% (texture%, width%, height%, imageFlags%=FI_AUTOFLAGS) If texture<>0 Then FI_Surfaces\Texture = texture FI_Surfaces\Count = xGetTextureFrames(texture) If FI_Surfaces\Count>0 Then If FI_Surfaces\Count>256 Then FI_Surfaces\Count=256 For i=0 To FI_Surfaces\Count-1 FI_Surfaces\Array[i] = xGetTextureSurface(texture, i) Next Return xCreateImageEx_(FI_Surfaces, width, height, imageFlags) EndIf EndIf Return 0 End Function |
||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hat niemand eine idee?
warum das mit xCreateImageEx_ so spinnt? ich hab echt alles probiert, was ich kann und weiß....nichts geht. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was sagt die original definition und handelt es sich bei der funktion um ne kernel funktion, nicht ne funktion aus ner C library? | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das is ne funktion aus einer c lib.nix mit kernel.
die original .bb datei dazu steht oben. wenn du willst, kann ich dirn komplettes paket schnüren. mod, .bb und c++ header.sag nur kurz bescheid, dann uppe ich es. ich werd da nämlich nicht schlau draus, also es scheint, als wenn nur bm mit dem rückgabe und übergabewert da probleme hat. schade ist halt, daß man in bmax nicht direkt c++ einbinden kann. per inline wärs ein klacks. |
||
![]() |
Geeecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man muss doch die Datei nur importen,und die Externen-Funktionen "laden".
Ist doch (fast xD xD) inline ![]() ![]() |
||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
da is leider nix mit einfach importen und funktionen laden, weil das ist ja auch der easy teil.der wrap erfordert aber leider mehr als das.ich werd den mod schlussendlich zu einer dll machen, die befehle umschreiben um sie für jede sprache mit dll importfunktion nutzbar zu machen.sind dann zwar 2 dll´s, aber ich hab schon mit mikhail (der FastImage gecodet hat) gesprochen, und er möchte wohl die dll nicht umbauen.(dabei muss ich sagen, daß in version 1.73 welches nicht für xors3d verfügbar,weil nicht notwendig, ist, diese vereinfachung der befehle schon teilweise umgesetzt wurde, um die dll auch mit purebasic+blitzsdk nutzen zu können,so wie mit jeder anderen sprache auch)
mit richtigem inline c++ würds gehen. ich schnür nochmal das komplette paket und lads hoch, wer will kann ja dann probieren die lösung zu finden. ich hab jedenfalls keine idee mehr, warum der fehler kommt und der mod dort hakt. [edit] so hier der link.enthalten ist mods für bmax sowie ein beispiel, bei welchem der fehler auftritt, einfach im debug modus compilieren.sowie nebenbei der wrapper für bb und die c++ header, wobei diese beiden funktionieren, nur bmax hakt rum.(achja, im ordner "test" ist das bmax beispiel drin. paket.rar - 1.41MB "skip this ad" drücken, kommt manchmal scheiß werbung. |
||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
keine irgendeine idee? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitte unterlasse das Threadpushen, danke. Wenn Dir jemand antworten kann und will wird er das auch ohne Push tun. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group