StlDLL für Blitz - Problemchen mit Handelrückgabe[Erledigt]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

flashmaxel

Betreff: StlDLL für Blitz - Problemchen mit Handelrückgabe[Erledigt]

BeitragSo, Okt 01, 2006 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo wiedermal,
Ich bin daran eine Dll zu schreiben, die die Standart Template Library in Blitz zur Verfügung stellt. Das ganze mache ich in C++ und bin da nun auf ein Problem gestoßen.
Ich will gerne das man mit dem Befehl in Blitz
Code: [AUSKLAPPEN]
a=CreateIntVector(50)
Einen Stl IntVector erstellen kann. Jetzt hab ich allerdings das Problem das wenn ich in einer C++Funktion IntVector zurückgebe Blitz das nicht verwenden kann und ich einen MAV bekomme. Deswegen wollte ich fragen, wie man das sonst machen könnte. Geht es vieleicht einen Zeiger auf IntVector zeigen zu lassen und den an Blitz zurückzugeben oder so ?
Wenn ihr irgendeine Idee habt bitte posten. Smile
Danke schonmal im Voraus !
Max
Real C programmers never die; they cast to void.
  • Zuletzt bearbeitet von flashmaxel am Di, Okt 03, 2006 13:42, insgesamt einmal bearbeitet
 

Dreamora

BeitragSo, Okt 01, 2006 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Rückgaben von Arrays (Memory Blöcke) von C musst du in Blitz als Bank entgegen nehmen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

flashmaxel

BeitragSo, Okt 01, 2006 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die schnelle Antwort !!!
Meinst du das so :

bank=CreateBank(1024)
PokeByte(bank,0,CreateIntVector(20))

Dabei kommt allerdings wieder ein MAV raus. Vieleicht gibt die Funktion ja mehr als ein Byte zurück aber Pokebyte speichert nur eins ... wie kann man das den machen ?
Der dafür relevante Teil des C++Codes sieht so aus :
Code: [AUSKLAPPEN]
#include <windows.h>
#include<iostream>
#include<vector>
using namespace std;
typedef vector<int> IntVector;
typedef IntVector::iterator IntVectorIterator;
#include "dll.h"


EXPORT IntVector CALLBACK CreateIntVector(int Size)
{
IntVector iv;
iv.reserve(Size);
return iv;
}

Oweia ob das überhaupt so geht Very Happy ?
Also in erster Linie versteh ich nicht so ganz warum das immernochn Mav gibt mit der Bank ?
Real C programmers never die; they cast to void.

Goodjee

BeitragSo, Okt 01, 2006 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ich nehme an du musst dir alle werte einzeln zurückgeben lassen und in eine bank schreiben...aber ich habe davon keine ahnung Very Happy
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Dreamora

BeitragSo, Okt 01, 2006 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
So wird das leider nicht funktionieren.

Du musst ein C Array (Memoryblock) zurück geben.
Hindert dich aber natürlich nicht daran, innerhalb deiner C Calls weiterhin das STL Array zu nutzen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

flashmaxel

BeitragDi, Okt 03, 2006 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut das werde ich mir auf jedenfall merken !
Allerdings hab ich gemerkt das ich ein IntVector kaum was anderes ist alls eine Bank - deswegen hab ich das Projekt aufgegeben Very Happy
Danke für den Tipp !
Max
Real C programmers never die; they cast to void.
 

Dreamora

BeitragDi, Okt 03, 2006 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Nichts ist etwas anderes als eine Bank im weitesten Sinne ^^
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group