Folgendes Problem, Ich will einen String von einer C++ DLL nach VB übergeben. Leider funktioniert das irgendwie net.
Teil der DLL Datei
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int _stdcall Produktanzeigen(int PNr, char cText1[], char cText[], char cText3[]);
int _stdcall Produktanzeigen(int PNr, char cText1[], char cText2[], char cText3[])
{
FILE *FDatei;
FDatei=fopen("c:\\Produkte.txt", "r");
if(!FDatei)
{
}
else
{
do{
fgets(cText1, 254, FDatei); //das ist einfach nur zum Testen
}while(!feof(FDatei));
}
fclose(FDatei);
return 0;
}
VB Teil
Private Declare Function Produktanzeigen Lib "C:\Dokumente und Einstellungen\Maulwurf\Desktop\Praktikum\Vortrag_P roggen\Tes
t\Kopie von Listenverkaufspreiskalk\Listenverkaufspreiskalk___ Win32_Debu
g\Listenverkaufspreiskalk.dll" _
(ByRef PNr As Integer, _
ByVal cText1 As String, _
ByVal cText2 As String, _
ByVal cText3 As String) As Long
Private PNr As Integer
Private Sub Command1_Click()
Dim ERG As Long, cText1 As String, cText2 As String, cText3 As String
PNr = Text1
ERG = Produktanzeigen(PNr, cText1, cText2, cText3)
Label3.Caption = cText1
Label5.Caption = cText2
Label7.Caption = cText3
End Sub
Zur Zeit wird denk ich mal garnix Übergeben, da die Felder bei der Ausgabe leer bleiben.
Teil der DLL Datei
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int _stdcall Produktanzeigen(int PNr, char cText1[], char cText[], char cText3[]);
int _stdcall Produktanzeigen(int PNr, char cText1[], char cText2[], char cText3[])
{
FILE *FDatei;
FDatei=fopen("c:\\Produkte.txt", "r");
if(!FDatei)
{
}
else
{
do{
fgets(cText1, 254, FDatei); //das ist einfach nur zum Testen
}while(!feof(FDatei));
}
fclose(FDatei);
return 0;
}
VB Teil
Private Declare Function Produktanzeigen Lib "C:\Dokumente und Einstellungen\Maulwurf\Desktop\Praktikum\Vortrag_P roggen\Tes
t\Kopie von Listenverkaufspreiskalk\Listenverkaufspreiskalk___ Win32_Debu
g\Listenverkaufspreiskalk.dll" _
(ByRef PNr As Integer, _
ByVal cText1 As String, _
ByVal cText2 As String, _
ByVal cText3 As String) As Long
Private PNr As Integer
Private Sub Command1_Click()
Dim ERG As Long, cText1 As String, cText2 As String, cText3 As String
PNr = Text1
ERG = Produktanzeigen(PNr, cText1, cText2, cText3)
Label3.Caption = cText1
Label5.Caption = cText2
Label7.Caption = cText3
End Sub
Zur Zeit wird denk ich mal garnix Übergeben, da die Felder bei der Ausgabe leer bleiben.
Comment