![]() |
wie C "VarData.pArray" variant in pascal konvertie
huhu,
wie kann ich folgenden C++ source nach pascal / delphi konvertieren?
Code:
Genauer gesagt geht es mir (wie im Titel erwähnt) um "varData.parray".
unsigned char
*pData = NULL; SAFEARRAY *psa = NULL; ..... psa = varData.parray; hr = SafeArrayAccessData(psa, (void **)&pData); ... .. . meine Versuche habenicht funktioniert: psa := VarData.pArray; oder psa := VarArrayAsPSafeArray(varData.parray); bin für jeden hinweis dankbar. Shalom EDIT: habe die varialben wie folgend deklariert (weiß nicht ob richtig ist)
Delphi-Quellcode:
pData: Pointer;//unsigned char
psa: PVarArray;//SAFEARRAY; |
Re: wie C "VarData.pArray" variant in pascal konve
vermutlich erstmal ein Variant-Array erstellen
- einfach ein Array dem Variant zuweisen - oder über VarArrayCreate und seine Freunde und dann mit VarArrayAsPSafeArray aus diesem Variant ein SaveArray machen :gruebel: |
Re: wie C "VarData.pArray" variant in pascal konve
Zitat:
ich hab nur eine veriante von VarArrayCreate()?Und bei dieser hab ich kein passenden parameter - kann also nicht das varDAta.parray übergeben.. Was genau meinst du mit "einfach ein Array dem Variant zuweisen"? wie kann ich dann das varData.parray einer variable vom Type PVarArray zuweisen?? thx |
Re: wie C "VarData.pArray" variant in pascal konve
Wo kommt varData her, bzw. pData oder wird pData mit dem Inhalt vom varData gefüllt?
Ist ja nicht grad viel von dem unverständlichen C-Code. Willst du das Aray erstllen/befüllen oder auslesen? |
Re: wie C "VarData.pArray" variant in pascal konve
Zitat:
Code:
Mein Problem ist, dass ich in Delphi bisher keine passende Lösung gefunden habe (siehe posting #1)
HRESULT CSample::OnStartScan(short a_nStatus,
short a_nFilmNumber, long a_nBytesRead, long nTotalBytesRead, VARIANT varData) { HRESULT hr = S_OK; unsigned char *pImageData = NULL; short result = 0; SAFEARRAY *psa = NULL; ... .. . //////////// D E R R E L E V A N T E T E I L //////////// psa = varData.parray; // // Lock the safearray to access the data it contains // hr = SafeArrayAccessData(psa, (void **)&pImageData); if (FAILED(hr)) { goto exit; } shalom |
Re: wie C "VarData.pArray" variant in pascal konve
habe jetzt scheinbar eine lösung gefunden, jedenfalls gibt es mit folegendem Code keine exception:
Delphi-Quellcode:
Shalom
var
pImageData: Pointer; psa: PVarArray;//nicht PSafeArray - war in C vom Typ "SAFEARRAY"; ... begin psa := VarArrayAsPSafeArray(varData); hr := SafeArrayAccessData(psa, pImageData); ... .. . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz