Hallo leute,
ich hab da ein kleines problemchen!
Undzwar hab ich in C++ eine DLL geschrieben, die eine funktion getData() enthält!
Jetzt versuche ich es in VB mit Private Declare Function getData Lib "C:\....." () As TLGData einzubinden
aber es funktioniert nicht!
TLGData ist eine struktur die einpaar int und double variablen beeinhaltet!
Hier mein code der DLL:
TLGData WINAPI getData()
{
TLGData pData[1];
LPCTSTR Archiv ="Prozesswertarchiv";
LPCTSTR Variable ="OP_MID_Q_l/s";
SYSTEMTIME Start;
SYSTEMTIME Stop;
PTLG_ARCHIVDATARAW pDaten;
DWORD Anzahl = 1;
DWORD Meldung = 0;
CMN_ERROR Error;
HWND hwndp = NULL;
TLGConnect (hwndp, &Error);
memset (&pDaten, 0, sizeof pDaten);
memset (&Error, 0, sizeof (Error));
Start.wYear = 2004;
Start.wMonth = 8;
Start.wDay = 26;
Start.wHour = 15;
Start.wMinute = 37;
Start.wSecond = 0;
Stop.wYear = 2004;
Stop.wMonth = 8;
Stop.wDay = 26;
Stop.wHour = 15;
Stop.wMinute = 39;
Stop.wSecond = 0;
TLGGetArchivDataEx(Archiv, Variable, &Start, &Stop, &pDaten, &Anzahl, &Meldung, &Error);
pData[0].Jahr = pDaten->stTime.wYear;
pData[0].Monat = pDaten->stTime.wMonth;
pData[0].Tag = pDaten->stTime.wDay;
pData[0].Stunde = pDaten->stTime.wHour;
pData[0].Minute = pDaten->stTime.wMinute;
pData[0].Sekunde = pDaten->stTime.wSecond;
pData[0].Flag = pDaten->dwFlags;
pData[0].Value = pDaten->doValue;
TLGDisconnect(&Error);
return pData[0];
}
BOOL APIENTRY DllMain( HANDLE, DWORD , LPVOID)
{
return (TRUE);
}
Und in VB rufe ich es so auf:
Private Sub Form_Load
Dim x(1) As TLGData
x(0)= getData()
End Sub
Und er bringt mir den Fehler DLL-Einsprungspunkt getData nicht gefunden!
Was muss ich machen, damit er es findet
danke
ich hab da ein kleines problemchen!
Undzwar hab ich in C++ eine DLL geschrieben, die eine funktion getData() enthält!
Jetzt versuche ich es in VB mit Private Declare Function getData Lib "C:\....." () As TLGData einzubinden
aber es funktioniert nicht!
TLGData ist eine struktur die einpaar int und double variablen beeinhaltet!
Hier mein code der DLL:
TLGData WINAPI getData()
{
TLGData pData[1];
LPCTSTR Archiv ="Prozesswertarchiv";
LPCTSTR Variable ="OP_MID_Q_l/s";
SYSTEMTIME Start;
SYSTEMTIME Stop;
PTLG_ARCHIVDATARAW pDaten;
DWORD Anzahl = 1;
DWORD Meldung = 0;
CMN_ERROR Error;
HWND hwndp = NULL;
TLGConnect (hwndp, &Error);
memset (&pDaten, 0, sizeof pDaten);
memset (&Error, 0, sizeof (Error));
Start.wYear = 2004;
Start.wMonth = 8;
Start.wDay = 26;
Start.wHour = 15;
Start.wMinute = 37;
Start.wSecond = 0;
Stop.wYear = 2004;
Stop.wMonth = 8;
Stop.wDay = 26;
Stop.wHour = 15;
Stop.wMinute = 39;
Stop.wSecond = 0;
TLGGetArchivDataEx(Archiv, Variable, &Start, &Stop, &pDaten, &Anzahl, &Meldung, &Error);
pData[0].Jahr = pDaten->stTime.wYear;
pData[0].Monat = pDaten->stTime.wMonth;
pData[0].Tag = pDaten->stTime.wDay;
pData[0].Stunde = pDaten->stTime.wHour;
pData[0].Minute = pDaten->stTime.wMinute;
pData[0].Sekunde = pDaten->stTime.wSecond;
pData[0].Flag = pDaten->dwFlags;
pData[0].Value = pDaten->doValue;
TLGDisconnect(&Error);
return pData[0];
}
BOOL APIENTRY DllMain( HANDLE, DWORD , LPVOID)
{
return (TRUE);
}
Und in VB rufe ich es so auf:
Private Sub Form_Load
Dim x(1) As TLGData
x(0)= getData()
End Sub
Und er bringt mir den Fehler DLL-Einsprungspunkt getData nicht gefunden!
Was muss ich machen, damit er es findet
danke