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

flashmaxelBetreff: StlDLL für Blitz - Problemchen mit Handelrückgabe[Erledigt] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich nehme an du musst dir alle werte einzeln zurückgeben lassen und in eine bank schreiben...aber ich habe davon keine ahnung ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Danke für den Tipp ! Max |
||
Real C programmers never die; they cast to void. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group