Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Cpp Dll - ein Array aus Vb übergeben & zurückgeben!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.02.2004, 12:12 Uhr
~Sören
Gast


Hallo,

ich schreibe mir gerade eine DLL in C/Cpp welche ich aus Visual Basic benutzten möchte. Einfache Werte den Funktionen innerhalb der DLL zu übergeben ist ja nicht weiter schwer nur wie übergebe ich aus VB ein array an meine Funktion in der DLL??

Ganuer:

Ich möchte aus VB ein Single-array (in c dann ja float) unbekannter grösse übergeben. Weiterhin ist das Ergebnis der Funktion ein char * Feld was ich nach unsigend char konvertieren möchte um dieses nach VB in ein Byte-array zurückzugeben.

Vielen Dank schonmal für euere hilfe!

Freundliche Grüsse
Sören
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.02.2004, 14:14 Uhr
virtual
Sexiest Bit alive
(Operator)



--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.02.2004, 15:22 Uhr
~Sören
Gast


So hier ist mein erster anlauf wobei er leider nicht funktioniert, ich hoffe ja auf eure mithilfe

Wenn irgendetwas unklar sein sollte fragt bitte nach.


Visual Basic:
'Variablen
Dim ByteBuffer As Byte
Dim FloatBuffer As Single

Dim clsTest As New Klasse


'Declare der DLL-Funktion
Private Declare Sub MeineFunktion Lib "irgendeine.dll" (ByRef InputArray As Single, ByRef OutputArray As Byte, ByVal ArraySize As Long)

'Methode in einer Klasse
Public Sub Methode(InputArray() As Single, OutputArray() As Byte, ArraySize As Long)
   MeineFunktion EncoderInput(0), OutputEncoder(0), ArraySize
End Sub

'Aufruf der Methode
clsTest.Methode InputArray, OutputArray, UBound(InputArray)






C++:
/* Funktion soll aus VB ein Single/Float array übergeben werden und ein Byte/unsigned char array zurückgeben */

__declspec (dllexport) int __stdcall MeineFunktion (float *input_array, unsigned char *output_array, int input_size)
{
    unsigend char *output_buffer;
    float *input_buffer;

             char *ergebnis_array;

    input_buffer = new float (input_size);

    input_buffer = input_array;

             /* Mache irgendetwas mit input_buffer */

            output_buffer = new unsigend char (xy);

            /* Funktion liefert ein Ergebnis als char* */

            ergebnis_array = /*irgendwas*/;

            output_buffer = new unsigned char (xy);

    output_buffer = (unsigned char *)output_buffer;

    delete input_buffer;
    delete output_buffer;

    return 0;
}





Zitat:
virtual postete



ok, darüber kann man jetzt streiten
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.02.2004, 15:26 Uhr
~Sören_baldmitAccount
Gast


@Op/Admin:

Diese Zeile hier ist leider doppel:

C++:
output_buffer = new unsigned char (xy);



Könnte einer von euch bitte die untere rauseditieren? Danke.

Ich sollte mich mal anmelden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.02.2004, 19:01 Uhr
Pablo
Supertux
(Operator)


Und was funktioniert nicht?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.02.2004, 22:56 Uhr
~Sören
Gast


Eine gute Frage wenn ich die Funktion aus VB aufrufe schmiert mir direkt die ganze IDE ab, wobei ich nicht so ganz nachvollziehen kann wieso!

Wenn du mir sagst wie ich innerhalb einer DLL debugt, kann ich sicherlich etwas mehr dazu sagen!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.02.2004, 23:07 Uhr
Pablo
Supertux
(Operator)


Ich würde sagen, das Problem liegt in der DLL Datei.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.02.2004, 23:31 Uhr
~Sören
Gast



Zitat:
Pablo postete
Ich würde sagen, das Problem liegt in der DLL Datei.


Glaube ich auch. Ich schätze mal das bei der übergabe und rückgabe der arrays irgendwie etwas schief geht. Deswegen habe ich das ganze auch ursprünglich im C-Forum gepostet.

Aber leider weis ich ja nicht wie ich in meiner C-DLL debuggen kann um der sache auf den Grund gehen zu können.

Prinzipiel ist aber meine vorgehensweise (aus VB sicht) richtig? Also ich übergebe ja meine Methode ja eine Referenz auf das jeweilige array. Innerhalb der Methode rufe ich DLL-Funktion auf welche dann wiederum eine Referenz an den Zeiger meiner Funktion in der DLL übergibt. Heisst der Zeiger in meiner DLL-Funktion zeigt dann auf mein in VB deklariertes array, richtig?

Danke, und Gruss
Sören
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.02.2004, 23:46 Uhr
Pablo
Supertux
(Operator)


In den VC++ Forum wurde die Frage, wie man DLLs dafür schreibt. Benutze die Such Funktion eingschränkt auf VC++ Forum und dann findest du die Antwort.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
18.02.2004, 07:43 Uhr
~Sören
Gast


OK, ich werde mal die Suche bequemen.

Könntest du mir die Frage bitte noch beantworten?!


Zitat:

Prinzipiel ist aber meine vorgehensweise (aus VB sicht) richtig? Also ich übergebe ja meine Methode ja eine Referenz auf das jeweilige array. Innerhalb der Methode rufe ich DLL-Funktion auf welche dann wiederum eine Referenz an den Zeiger meiner Funktion in der DLL übergibt. Heisst der Zeiger in meiner DLL-Funktion zeigt dann auf mein in VB deklariertes array, richtig?



Und einen wunderschönen Morgen allerseits.
Sören
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: