| |
|
|
KHR | allô miteinander,
comme stolzer neuer Anwender de P2CPP suis je justement dabei quelques Programme sur P2CPP "umzustricken"
Dabei hat mich cela Comportement des P2CPP chez écrivons de INI-Fichiers quelques Zeit gekostet. seulement pour längerem chercher habe je ensuite den Unterschied entdeckt.
Xprofan wandelt Variablenwert (integer et float) automatisch richtig um, P2CPP pouvoir cela seulement chez integer richtig, floats wandelt es dans integer um.
Bien sûr peux on cela léger avec @str$(float) tourner autour de, mais il faut seulement la fois sur elle venons, quoi et wieso là eh bien anders fonctionne. peut-être nutze je là oui aussi seulement quoi, cela plutôt ungewollt dans Xprofan funktioniert et so pas zur Verwendung gedacht ist.
ici mon Beispiel-Programme et qui Ergebnisse: KompilierenMarqueSéparation |
|
|
|
|
RGH | KHR
égal si eh bien Bug ou bien feature - on cherchez ne weile jusqu'à on qui Ursache findet
Weder Bug encore Feature, mais falscher Parametertyp: le son Aider ist qui dernier paramètre chez WriteIni un String, alors wäre on avec @Str$() sur qui sicheren page. Lässt on cet weg, greift chez XProfan qui automatische Typumwandlung (siehe Aider, paragraphe 7.8 ), qui den numerischen Wert dans une Sttring umwandelt, wobei qui Einstellungen par @Set("Décimal",...) et @Set("NumWidth",...) berücksichtigt volonté. XProfan benutzt pour WriteIni avec Ini-Fichiers ausschließlich qui API-Funktion WritePrivateProfileString. Möglicherweise utilise P2CPP chez numerischen Werten qui API WritePrivateProfileInt, quoi expliquer serait, dass ici qui Umwandlung dans une Integer erfolgt.
si on sur qui sicheren page son voudrais, sollte on rien dem Zufall et qui Typumwandlung pas qui Programmiersprache überlassen. ;)
Salut 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 | 17.12.2008 ▲ |
|
|
|
|
Sebastian König | Salut,
aussi dans Profan2Cpp findet une automatische Typenumwandlung statt (il y a plusieurs Versionen pour WriteIni() et je pour Typ des letzten Paramètres wird qui passende aufgerufen). cela Problem ist, dass Fließkommazahlen dabei bisher pas explizit berücksichtigt volonté et C++ évident dans diesem le cas lieber qui Integer- comme qui String-Version benutzt. je werde cela dans qui prochain Version changement, avec cela cela Verhalten dans Profan2Cpp et XProfan juste ist. Abgsehen en hat Roland naturellement droite avec cela, dass qui Verwendung de str$() dans chaque le cas qui sicherste variante ist ;).
MfG
Sebastian |
|
|
| |
|
|
|
| RGH
si on sur qui sicheren page son voudrais, sollte on rien dem Zufall et qui Typumwandlung pas qui Programmiersprache überlassen. ;)
Salut Roland
Jau!
qui automatische Typumwandlung gestaltet cela Fehlerfinden quelquefois assez langwierig.
il y a mais une undokumentierte Schreibweise (xpse) quelle qui Voraussetzungen erfüllt, dass Funktionen aussi seulement den definierten Typ zurückgeben (peut).
Normales XProfan: KompilierenMarqueSéparation Kleines XPSE 1: (aucun Paramètres la ligne) KompilierenMarqueSéparation Kleines XPSE 2: (ne...aucune PROC et ENDPROC, statt dessen comment z.B. dans c#, php et js geschweifte Klammer pour Block.) KompilierenMarqueSéparation Kleines XPSE 3: (Wegfall qui Variablensuffixe, statt dessen comment z.B. dans c#, php, js et pascal/delphi) KompilierenMarqueSéparation Kleines XPSE 4: (Funktion "meineProc" zum Typ "int" déclarer um z.B. sûrement trop se mettre, dass z.B. ne...aucune String retour wird) KompilierenMarqueSéparation mets on den Typ avant dem Namen einer Funktion, wird qui Funktionswert aussi seulement de diesem Typ retour. Folgende Varianten sommes seither vorhanden: KompilierenMarqueSéparationbool meineProc(int a,b,c){return a+b+c}
int meineProc(int a,b,c){return a+b+c}
long meineProc(int a,b,c){return a+b+c}
float meineProc(int a,b,c){return a+b+c}
string meineProc(int a,b,c){return a+b+c}
(naturellement muss on ensuite qui Funktionen pas (comment ici im Beispiel) dans un einzige la ligne "ziehen")
si es la fois intéressant wird, ensuite pourrait xpse alors aussi qui Rückgabewerte de Funktionen chez Zuweisungen sur Typengleichheit überprüfen - wohin il doch eh comme Überbringer unangenehmer Botschaften gefeiert wird.
@KHR: XPSE était autrefois aussi à cause de Profan2CPP entstanden, funktioniert {$cpp} chez Dir ou bien utilise XPSE pas? |
|
|
| |
|
|