Völlige Verzweiflung hat mich letztlich dazu getrieben hier ein frage zu posten. Also flehe ich mal dezent um Hilfe!
Ich verwende eine
DLL deren C source ich erhlaten habe. da gibt es eine ganz simple Prozedur drinnen, die ich in meinem Delphi Programm nützen möchte:
Code:
{
Const OK = 0
Const MEM_ERROR = &H1
Const DLL_NOTINIT = &H2
.
.
.
}
Code:
VOID EXPENTRY netErrorStr (USHORT errCode, USHORT maxLen, PVALUE errStr)
{
switch (errCode)
{
case OK :
strncpy(errStr, "O.K." , maxLen);
errStr[maxLen] = '\0';
break;
case DLL_NOTINIT:
strncpy(errStr, "
DLL noch nicht initialisiert" , maxLen);
errStr[maxLen] = '\0';
break;
case MEM_ERROR :
strncpy(errStr, "Speicherfehler" , maxLen);
errStr[maxLen] = '\0';
break;
case ADR_ALRUSED:
strncpy(errStr, "Adresse bereits verwendet worden" , maxLen);
errStr[maxLen] = '\0';
break;
default :
strncpy(errStr, "Unbekannter Fehler" , maxLen);
errStr[maxLen] = '\0';
}
}
Ich hab also in Delphi7 diese Prozedur wie folgt dekalriert:
Zitat:
procedure netErrorStr(errNo, MaxLen: smallint; var ErrorText: PChar); pascal; external 'waagen.dll';
und dann so verwendet:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
pValue: PChar;
sValue: String;
begin
netErrorStr(0,80,pValue);
sValue:= strpas(PChar(pValue);
showmessage(sValue);
end;
Da sollte doch dann sowas wie "O.K." im meiner Messagebox angezeigt werden. Aber ach: ich bin schlicht und ergreifend z'deppat!
Gibt es wo einen Barmherzigen der mir sagt wie meine netErrorStr wirklich deklariert werden muss um den ErrorString zurückzubekommen?
danke schon mal
rieder/IT