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

 
Zhunko:

Wurde das Projekt mit seinen Eigenschaften in VC++ 6.0 kopiert oder wurde es separat eingerichtet?

Es gab nur eine funktionierende cpp-Datei mit einer Reihe von Funktionen. Also habe ich das Projekt in 6.0 neu erstellt und einfach alle Funktionen dorthin übertragen.

Ich habe dreimal Funktionen in VS 2010 verwendet, die es in XP nicht gibt. Unter Vista und 7 funktionierte alles, aber unter XP konnte das Terminal die Bibliothek nicht sehen.

Das ist das Problem mit dem neuesten VS, sie machen nicht die richtigen Dlls. Einige DLLs funktionieren, andere nicht.
 
sergeev:

Es gab nur eine funktionierende cpp-Datei mit einer Reihe von Funktionen. Also habe ich das Projekt in 6.0 neu erstellt und einfach alle Funktionen dorthin übertragen.

Das ist das Problem mit den neuesten VS, sie machen einige falsche DLLs. Bei manchen funktionieren sie, bei anderen nicht.

Würde man sie mit allen Eigenschaften kopieren, würde der Compiler als Fehler anzeigen, dass es keine solchen Funktionen gibt.

Neue Zeilen mit Präprozessor-Direktiven #IFDEF | #IFNDEF ... #ENDIF. Jetzt sind sie auf Vista und davor getrennt. Es sind viele neue interessante Funktionen hinzugekommen, die unter XP nicht funktionieren. Oder besser gesagt, sie sind nicht da.

 
granit77:
Wenn die PROs nichts dagegen haben, können die Moderatoren helfen, den Thread so steril wie möglich zu halten.

Es gibt keinen Grund, dies zu fragen, auch wenn es sich um einen Profi handelt. Sie (die Profis) sind sich einig! ))

Und bitte behalten Sie " Where's the Line..." im Auge. Es ist ein interessantes Thema, und in zwanzig Beiträgen gibt es praktisch keinen Bullshit.

Aber es bahnt sich bereits ein Kampf an....

 
sergeev:
Das ist das Problem mit den neuesten VS dlls: Sie machen nicht die richtigen. Bei manchen funktionieren sie, bei anderen nicht.
Vielleicht liegt das Problem in den Standardeinstellungen? Ich denke, wenn ich mein Arbeitsprojekt von 6.0 auf 2008 aktualisiere, wird es auch normal gebaut, obwohl ich mich irren könnte.
 
TheXpert:
Vielleicht liegt das Problem an den Standardeinstellungen? Ich denke, wenn Sie ein funktionierendes Projekt von 6.0 auf 2008 aktualisieren, wird es auch gut zu bauen, obwohl ich falsch sein könnte.

Ich hatte nichts mit 6.0, aber von 2008 bis 2010 haben alle Projekte funktioniert. Ich denke, das Problem ist immer noch die Verwendung von WinAPI-Funktionen, die auf höheren Systemversionen nicht verfügbar sind.

Bei der Installation des Studios wird standardmäßig die aktuelle Systemversion als Minimum verwendet. Zumindest war das bei mir 2008 und 2010 der Fall. Ich muss es auf XP umstellen.

 
TheXpert:
Vielleicht liegt das Problem an den Standardeinstellungen? Ich denke, wenn ich mein Arbeitsprojekt von 6.0 auf 2008 aktualisiere, würde es auch gut funktionieren, obwohl ich mich irren könnte.

Ursprünglich habe ich das im Jahr 2008 gemacht. Dann wiederholte ich das Gleiche mit 6.0 (ich erstellte ein neues dll-Projekt ).

Es hat funktioniert. Und es funktionierte genau unter Win7 und Vista. 2008 war fehlerhaft, während 6.0 in Ordnung war. VS sind in beiden Fällen auf XP.

 
drknn:
Versuchen Sie 226. Das Problem der DLLs wurde hier bereits angesprochen. Die Leute sind zu dem Schluss gekommen, dass 226 die stabilste Version ist.
Ich habe auch 228 und 229 ausprobiert. In meinem Fall ist es dasselbe. Ähnlich wie 226. Alles funktioniert, wenn ich die Bibliothek nicht sofort initialisiere. Die 225 funktioniert überhaupt nicht. Es friert das Terminal ein.
 

Ach, Blödsinn. Es muss eine Frage für Entwickler sein, oder es ist nicht alles in Ordnung in der DLL. Ich bin kein C++-Programmierer - ich habe einmal versucht, ein paar Programme zu erstellen, aber ich habe festgestellt, dass alles funktioniert, solange man eine C++-Shell installiert hat. Aber sobald Sie die ausführbare Datei auf einen anderen Computer übertragen, sobald Sie das Fehlen einiger DLL-Zyklen feststellen. Ich arbeite auch nicht gerne mit Strings. Ich habe diese Sprache aufgegeben und mich für Delphi entschieden. Vielleicht können Sie versuchen, Ihre dll auf sie zu machen - solche dlls sind ganz normal mit dem Terminal...

P.S.

Ich verstehe also nicht, warum jeder C++ so sehr lobt, wenn selbst bei der Wahl einer Shell für die Programmierung Probleme mit dieser Sprache auftreten...

 

Auch ich habe meine Zweifel.

Ich gebe nicht vor, ein Superprofi zu sein, ich erreiche nicht das Niveau eines Profis - niemand liest Nachrichten... das ist für das Auge des Pferdes klar.

Aber je mehr ich Code schreibe (bisher nicht viel), desto mehr stellt sich eine Frage:

Wie werden Parameter in Funktionen übergeben?

(nach Namen oder nach Wert?)

Ich habe den Verdacht, dass String-Variablen bei der Übergabe zittrig werden...

;)

 
Sorento:

Auch ich habe meine Zweifel.

Ich gebe nicht vor, ein Superprofi zu sein, ich erreiche nicht das Niveau eines Profis - niemand liest Nachrichten... das ist für das Auge des Pferdes klar.

Aber je mehr ich Code schreibe (bisher nicht viel), desto mehr stellt sich eine Frage:

Wie werden Parameter in Funktionen übergeben?

(nach Namen oder nach Wert?)

Ich habe den Verdacht, dass String-Variablen bei der Übergabe gestrichelt werden...

;)

Das lässt sich leicht herausfinden. Sie übergeben eine mit einem Wert vorinitialisierte String-Variable an ein Unterprogramm. Prüfen Sie in der Unterroutine zunächst, was genau übergeben wurde. Zum Beispiel so:

//+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
  string Stroka="Любая биллеберда";
  Alert("----------------------------------------");
        Alert("В функцию передано значение переменной Stroka = ",Stroka);
        Proverka(Stroka);
        Alert("----------------------------------------");
        return(0);
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+

void Proverka(string Str){
  Alert("В функцию поступило значение = ",Str);
}
Grund der Beschwerde: