Español
Stammtisch & Café

Bräuchte kleine VB translate to XProfan Kurs

 

Clemens
Meier
Auch de me sólo una vez Frohe Ostern a todos.

Yo habe folgendes kleines Problema. Yo habe una Quellcode en VisualBasic gefunden ([...] ). Das meiste lo me está auch klar y doch kamen me en Übersetzung plötzlich Bedenken:

Lo va a wininet.dll. Als Ejemplo es en Visual Basic:
Privado Declarar Function InternetOpenA Lib wininet.dll ( _
ByVal lpszCallerName As String, ByVal dwAccessType As Largo, _
ByVal lpszProxyName As String, ByVal lpszProxyBypass As String, _
ByVal dwFlags As Largo) As Largo

Später se el Función como folgt aufgerufen:
hOpen = InternetOpenA( _
INET_CallerName, OpenType, _
vbNullString, vbNullString, 0)

Yo habe el en XProfan nun como folgt interpretiert:
def InternetOpenA(5) !wininet.dll,InternetOpenA

Und später el Aufruf:
hOpen& = InternetOpenA($INET_CallerName,opentype&,,,0)

($INET_CallerName Yo como Konstante definiert)

1. Wäre el Übersetzung soweit okay?
2. An algunos Stellen voluntad Cuerdas transferencia, sin dass en el Longitud geachtet se. An otro Stellen muss el Longitud de Cuerdas en el Funktionsaufruf mitübergeben voluntad. Yo nehme a, dass Yo en el zweiten Falle no el String incluso, pero el Addresse des Cuerdas y luego deren Longitud transferencia se. oder debería uno en esta Fällen no mejor una Zona anstatt des Cuerdas transferencia?
3. Manchmal findet uno el Bezeichnung vbNullString. Ist el Identisch con en XProfan?

Yo danke ya veces para el Ayuda
 
XProfan 9.1; XP SP2; FF; Editpad
15.04.2006  
 



Sind alles nullterminierte Cuerdas, Así que una Chr$(0) kennzeichnet el Ende des Cuerdas!
Ejemplo para nullterminierten String:
KompilierenMarcaSeparación
Declare MeinString$
MeinString$ = blub + Chr$(0)
Addr(MeinString$)re>

Mit el Addr se entonces el Pointer a el nullterminiertem String transferencia.
 
15.04.2006  
 




Clemens
Meier
Morgen

media Usted, dass todos Cuerdas sólo como Adresse transferencia voluntad? Sind en XProfan el Cuerdas no automáticamente nullterminiert? Müsste doch, porque auch XProfan muss doch erkennen, wann el Ende uno Cuerdas gekommen es.
 
XProfan 9.1; XP SP2; FF; Editpad
15.04.2006  
 




RGH
Clemens Meier
media Usted, dass todos Cuerdas sólo como Adresse transferencia voluntad?


Sí, el API sabe sólo 32-Bit-Integer como Parámetro. Im Falle de Cuerdas also una Zeiger el erste Signo uno strings. Das Ende desselben se por una Null-Byte gekennzeichnet. Das bedeutet allerdings auch, daß en API-Aufrufen en einm String kein Null-Byte vorkommen darf. (Lo son algunos wenige Ausnahmen, wo una einfaches Null-Byte en el String vorkommen darf y el Ende por una doppeltes Null-Byte gekennzeichnet es.)
El Kennung lpsz bedeutet: Largo Pointer String Zeroterminated - Zeiger en nullterminierten String.

Clemens Meier
Sind en XProfan el Cuerdas no automáticamente nullterminiert? Müsste doch, porque auch XProfan muss doch erkennen, wann el Ende uno Cuerdas gekommen es.


Nein Cuerdas en XProfon son en el Normalfall no nullterminiert y puede por lo tanto auch cualquier viele Null-Bytes enthalten. In el Bytes antes el Stringanfang es z.B. el Longitud des Cuerdas. (Lo es son el Ansi-Cuerdas de Delphi.)

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.04.2006  
 




RGH
Clemens Meier
Manchmal findet uno el Bezeichnung vbNullString. Ist el Identisch con en XProfan?


Como XProfan en una API-Aufruf en una String-Literal (hier: ) dessen Adresse übergibt sería en diesem Fall Así que el Adresse en una Leerstring transferencia. Wenn al voluntad, wäre lo aber mejor, auch el Leer-String con un Nulbbyte abzuschließen: z (el es identisch con chr$(0) ).

Lo son sin embargo algunos API-Características, el con un Zeiger en una Leerstring no así bastante klarkommen. Diese esperar entonces simplemente anstelle el Adresse des Leerstrings una 0 como Kennzeichen, daß dieser Parámetro no genutzt se. Yo sería also überall, wo vbNullString es, simplemente una 0 hinschreiben:
KompilierenMarcaSeparación
hOpen& = InternetOpenA(Addr(INET_CallerName$), opentype&, 0, 0, 0)
>

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
15.04.2006  
 




Clemens
Meier
Nun, algo schlauer bin Yo ya geworden. Aber todavía siempre todavía algo verwirrt:

In VB finde Yo folgenden Aufruf uno Función:
hRequest = HttpOpenRequestA( _
hConnect, POST, Path, HTTP/1.0, _
vbNullString, 0, INTERNET_FLAG_RELOAD, 0)

Como Roland schreibt, se en una String-Literal el Adresse transferencia, en el obigen Ejemplo Así que el Adresse vom String POST o. HTTP/1.0 aber hier sin Nulltermination. Sollte uno en XProfan sicherheitshalber POSTz o. HTTP/1.0z escribir oder va el entonces sin?

Außerdem beim Weiterübersetzen bin I folgendes gestoßen:
InternetReadFile hRequest, Buffer, Len(Buffer), Bytes

InternetReadFile es otra vez una Api Función, el aber no Valor zurückgibt, stattdessen sowohl el Buffer, como auch Bytes con Werten bestückt. In el Api-Definition se Bytes como Largo angegeben. Lo se Así que una 4 Bytes großer Valor hinein geschrieben. In el Fall Me estoy dando en XProfan wohl auch el Adresse de Bytes& a, correcto? In XProfan sería el Línea como folgt aussehen:
InternetReadFile(hRequest&,addr(buffer#),sizeof(buffer#),addr(bytes&))

Richtig así?

(Yo nehme a, el Función sizeof son a, como gross el Buffer dimensioniert wurde y no, como gross el se en él befindliche nullterminierte String es.)

Yo habe gerade en algunos más VB-Páginas klasse Programas gefunden, de denen lo lohnen sería, en XProfan a traducir

P.S.: Posesiones en el XProfan-Ayuda folgende Zeilen gefunden:

Jeder String se por una Nullbyte (Signo con el Code 0) final. Auf esta Weise puede Cuerdas OHNE Umweg encima Bereichsvariablen a API-Características transferencia voluntad, etwa:

MSGBOX(0, @Addr(Titel$), @Addr(Texto$), Stil&)

Auf bien Alemán, Cuerdas brauche Yo no extra con un z versehen, pero muss simplemente sólo el Adresse transferencia, como cada String con un Nullbyte versehen se. Doch el es en el Widerspruch a el, qué Roland vorhin geschrieben ha. Yo mi, si yo reinen Texto habe (kein Bild oder ähnliches, Yo sowieso en una Zona escribir sería), brauche Yo el Ende no extra a kennzeichnen. Wenn Yo no sicher bin, si son reinen Texto es, debería uno a Sicherheit una z anhängen.

Yo fasse veces para mich zusammen:
Cuerdas y Buffer voluntad no direkt transferencia, pero sólo deren Adressen. Ggf. se en una Buffer todavía el Größe des Buffers (Bereiches) mitangegeben, si la Api-Función Werte hinein escribir möchte. Integer y Largo voluntad en el meisten Fällen direkt transferencia, lo sei porque, el sistema API-Función möchte esta Werte zurückgeben, entonces son uno el jeweilige Adresse a, así dass en XProfan el Valor inmediatamente en el Variables drin es.

vbNullString ersetzt uno al einfachsten con el Valor 0.
 
XProfan 9.1; XP SP2; FF; Editpad
15.04.2006  
 



Besser es en el MSDN o PlatformSDK nachzusehen.


BOOL InternetReadFile(
HINTERNET hFile,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead
);


lpBuffer se una Pointer esperado, Así que el Adresse, siehste a el lp, dasselbe gilt para lpdwNumberOfBytesRead
Der Rest se direkt transferencia, also ByVal, el otro nennt se en VB ByRef.
In el Beschreibungen en el PSDK es De todos modos deutlich qué esperado se!
 
15.04.2006  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.982 Views

Untitledvor 0 min.
H.Brill03.10.2022
Peter Max Müller27.11.2011
Stephan Lührsen17.08.2011
Julian Schmidt08.04.2011

Themeninformationen

Dieses Thema ha 3 subscriber:

Clemens Meier (3x)
RGH (2x)
unbekannt (2x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie