Alle Fragen von einem PROFI an einen SUPER PROFI - 1. - Seite 15

 
TheXpert:

Sie könnten versuchen, umzuwandeln.

Wenn ich Zeit habe, werde ich versuchen, ein Beispiel zu geben. Ansonsten... Dieser C++-Code sollte in MQL4 umgewandelt werden:

wstring sollte durch ein Array von Ints ersetzt werden und dies sollte bei der Neuberechnung der Größe berücksichtigt werden.
Sie muss in WORD konvertiert werden. Sie besteht aus 2 Byte und INT aus 4 Byte. D.h. wir müssen zwei Zeichen in ein INT einfügen. High 2 Bytes (erste) + Low 2 Bytes (zweite).
 
Zhunko:
Es muss ja schließlich in WORD sein. Er besteht aus 2 Byte und INT aus 4 Byte. Das heißt, ein INT muss zwei Zeichen enthalten. High 2 Bytes (erste) + Low 2 Bytes (zweite).
Ja, das habe ich gemeint, als ich von der Größenberechnung sprach.
 

Sie sollten es versuchen. Vielleicht gibt es keine Probleme, wenn die Funktion MultiByteToWideChar() direkt verwendet wird.

Um ihm ein INT-Array unterzuschieben. Es handelt sich ohnehin um eine Referenz. Welchen Unterschied macht es, welchen Typ hat es? Sie wird nicht nach Typ, sondern nach Bytes gefüllt.

Übergeben Sie ihn auch an WinHttpConnect().

 
Zhunko:

Sie sollten es versuchen. Vielleicht gibt es keine Probleme, wenn die Funktion MultiByteToWideChar() direkt verwendet wird.

Um ihm ein INT-Array unterzuschieben. Es handelt sich ohnehin um eine Referenz. Welchen Unterschied macht es, welchen Typ hat es? Sie wird nicht nach Typ, sondern nach Bytes gefüllt.

Übergeben Sie ihn auch an WinHttpConnect().

einen Scheck ausgestellt

#import "kernel32.dll"
   int MultiByteToWideChar(int CodePage, int dwFlags,
                           string lpMultiByteStr, int cbMultiByte, int &lpWideCharStr[],int cchWideChar);
#import

int start()
{
        int wbuf[]; string st="1234";
        int n=MultiByteToWideChar (65001, 0, st, -1, wbuf, 0);
        ArrayResize(wbuf, n); MultiByteToWideChar (65001, 0, st, -1, wbuf, n);
        st=""; for (int i=0; i<n; i++) st=st+" "+DoubleToStr(wbuf[i],0); Print("arr="+st);
        st=""; for(i=0; i<ArraySize(wbuf); i++) for(int j=0; j<4; j++) st=st+CharToStr((wbuf[i]>>(j*8))&0xFF); 
        Print("after="+st);
}

Ich weiß immer noch nicht, ob MultiByteToWideChar funktioniert oder nicht, aber es protokolliert die richtigen Zeichenfolgen

Ich habe auch hinzugefügt

#import "ntdll.dll"
   int RtlGetLastWin32Error();
   int RtlSetLastWin32Error(int dwErrCode);
#import 
        hSession=WinHttpOpen("MqlHttp", 0, "", "", 0);
        Print("hSession="+Http.hSession);

        RtlSetLastWin32Error(0); //сбрасываем последний код ошибки
        hConnect=WinHttpConnect(hSession, "www.mql4.com", 80, 0);
        if (hConnect<=0) Print("-Err create Connect "+RtlGetLastWin32Error());
Fehler 12005 - Ungültige URL
 

Die Funktionsbeschreibung wurde überarbeitet und ein Array anstelle des ServerName-Strings eingefügt

int WinHttpConnect(int hSession, int& pswzServerName[], int nServerPort, int dwReserved);

Aber das tat es nicht... Derselbe Fehler.

        RtlSetLastWin32Error(0); //сбрасываем
        int wHost[]; int n=MultiByteToWideChar (65001, 0, "www.mql4.com", -1, wHost, 0);
        ArrayResize(wHost, n); MultiByteToWideChar (65001, 0, "www.mql4.com", -1, wHost, n);
        hConnect=WinHttpConnect(hSession, wHost, 80, 0);
 

Die Frage bezieht sich nicht auf die Sprache MQL4. Die Frage bezieht sich auf C++. Viele Menschen hier kennen diese Sprache. Ich brauche nur einen Rat. Ich habe meine Frage nicht in den Thread für Neulinge gestellt, da dieser von Programmieranfängern im Allgemeinen häufig besucht wird.

Scintilla

Ich kann keine Anweisungen auf Russisch finden, wie man Scintilla in Borland C++ Builder 6.0 Enterprise Edition installiert. Die Suche bei Google ergab keine Ergebnisse. Ich habe bereits meine Zeit mit der Suche in den Foren verbracht. Es gibt einfach keine Informationen auf Russisch. Ich beherrsche die englische Sprache auf diesem Niveau nicht gut. Ich habe diese Frage in C++-Foren gestellt, aber keine Antworten erhalten. Könnten Sie mir bitte vorschlagen, wie ich das bewerkstelligen kann?
Ich habe das Installationsprogramm von einer externen Seite heruntergeladen (an diesen Beitrag angehängt)

Dateien:
scintilla224.zip  1184 kb
 
drknn:

Die Frage bezieht sich nicht auf die Sprache MQL4. Die Frage bezieht sich auf C++. Viele Menschen hier kennen diese Sprache. Ich brauche nur einen Rat. Ich habe meine Frage nicht in den Thread für Neulinge gestellt, da dieser von Programmieranfängern im Allgemeinen häufig besucht wird.

Scintilla

Ich kann keine Anweisungen auf Russisch finden, wie man Scintilla in Borland C++ Builder 6.0 Enterprise Edition installiert. Die Suche bei Google ergab keine Ergebnisse. Ich habe bereits meine Zeit mit der Suche in den Foren verbracht. Es gibt einfach keine Informationen auf Russisch. Ich bin nicht sehr versiert in Englisch auf diesem Niveau. Ich habe diese Frage in C++-Foren gestellt, aber keine Antworten erhalten. Könnten Sie mir bitte vorschlagen, wie ich das bewerkstelligen kann?
Ich habe das Installationsprogramm aus dem Internet heruntergeladen (an diesen Beitrag angehängt)

Möchten Sie es als VCL in die Umgebung einbetten? Sie müssen die Komponente von Hand schreiben, eine andere Möglichkeit sehe ich nicht...
 
sergeev:

Die Funktionsbeschreibung wurde überarbeitet und ein Array anstelle der Zeichenkette ServerName eingefügt

Aber das tat es nicht... Derselbe Fehler.

Das mag dumm sein, aber... Haben Sie versucht, HTTP:// zur URL hinzuzufügen?
 
alsu:
Möchten Sie es als VCL in die Umgebung einbetten? Sie müssen die Komponente von Hand schreiben, eine andere Möglichkeit sehe ich nicht...

Soweit ich das verstanden habe, brauche ich nicht 1 Komponente, sondern eine ganze Palette von Komponenten. Ich habe versucht, eine ähnliche SynEdit-Palette in Borland.Delphi.v7.0 einzubetten. Was mir nicht gefällt, ist, dass die Zeilennummerierung des Texteditors bei 01 beginnt und nicht bei 1, wie es in Notepad++ der Fall ist. Außerdem konnte ich in SynEdit keine Komponente finden, mit der man die Syntax der Benutzersprache hervorheben kann. Alle Arten von C++, Pascal, Java, php... ...aber keine benutzerdefinierte Sprache. Oder vielleicht gibt es eine, aber ich konnte sie nicht finden. Also dachte ich, dass es eine Alternative gibt - Skintilla - ich habe im Internet darüber gelesen. Also habe ich nach einer Anleitung gegoogelt. Aber da ist nichts. In den Foren das Gleiche. Ich habe jedoch gesehen, dass Leute über die Verwendung dieser oder jener Komponente von Skintilla geschrieben haben. Aber niemand erwähnt, wie es auf die Palette gekommen ist. Es ist seltsam...
 

Ich brauche Paletten wie diese