2010-12-28 10 views
0

Die CGRC.exe in Delphi 2010 unterstützt die Verwendung von Punkt als Ressourcenname. Ich möchte es auch in Delphi 2007 IDE verwenden. Ist das möglich?Kann Delphi 2007 IDE die cgrc.exe von Delphi 2010 verwenden, während RC-Dateien kompiliert werden?

In Delphi 2007 IDE, wenn wir ein Projekt kompilieren, die RC-Datei hat, wird die Build-Nachricht etwas wie zeigen:

BRCC Command Line 
    -w32 -foC:\Users\coder\Project\account.core.res -iC:\Users\coder\Project\developer -dDEBUG C:\Users\coder\Project\account.core.rc 

Allerdings ist es nicht wirklich BRCC32.EXE verwenden, um die RC zu kompilieren Dateien wie ich die

zu etwas anderem umbenennen.

+0

@Chau was meinst du mit "Unterstützung mit Punkt als Ressource Name"? Ich kann mir nicht helfen zu fühlen, dass wenn Sie Ihr Problem besser erklären, anstatt direkt zu Ihrer Lösung zu gehen, Sie vielleicht bessere Hilfe bekommen. –

+0

@Chau auch, CGRC ist, glaube ich, nur ein Boot-Strapper, der RC oder BRCC je nach Benutzervorliebe hervorbringt. Dies hängt eindeutig mit Ihrer vorherigen Frage zusammen (http://stackoverflow.com/questions/4538131/include-file-behave-differently-using-rc-exe-or-brcc32-exe-to-build-rc-files) und Es würde viel mehr Sinn machen, wenn Sie nur diese Frage editieren und erklären würden, warum die Antworten mangelhaft waren. –

+0

Der Punkt, den ich meinte, hat Ressourceneintrag in RC-Datei wie "file.data rcdata file.xml". Ich kann "file.data" nicht als Namen für den Ressourceneintrag in Delphi 2007 oder brcc32.exe verwenden. In Delphi 2010/XE kann ich "cgrc.exe" oder "Windows SDK-Ressourcencompiler" verwenden, die den Punkt im Ressourceneintragsnamen zulassen. Was ich brauche, ist eine Lösung, die mir erlaubt, mein Delphi-Projekt zu kompilieren, das aus einer .rc-Datei besteht, die einen Punkt im Ressourcennamen hat. Ersetzen Sie entweder brcc32.exe (das funktioniert nicht) oder schreiben Sie ein Plug-in für Delphi 2007. –

Antwort

3

Delphi 2007 gibt Ihnen offensichtlich keine Option, was Sie ausführen sollen. Wenn Sie bereits eine Option zu direkt RC ausführen, dann würde es Ihnen keinen Vorteil bieten, stattdessen CGRC zu verwenden. The documentation tells you, dass CGRC nur die BRCC-Befehlszeilensyntax in die von Microsoft RC benötigte Syntax übersetzt und dann RC ausführt.

Das Dienstprogramm wird wahrscheinlich so bereitgestellt, dass die IDE nur eine Befehlszeilengenerierungssubroutine statt zwei oder mehr benötigt. Mit diesem Dienstprogramm kann die IDE einen einzelnen Satz von Befehlszeilenoptionen generieren, sodass sie nur die EXE-Datei, die sie aufruft, basierend auf der project options ändern muss.

Es scheint, dass Sie bei der Möglichkeit der Hinting wurden ersetzt die brcc32.exe-Datei, die Delphi 2007 mit dem bietet cgrc.exe Datei Delphi 2010 enthält. Aber Delphi läuft anscheinend nicht wirklich . Das deutet darauf hin, dass die tatsächliche Ressource-kompilierung Fähigkeit in einer DLL ist, die von brcc32.exe und der IDE oder dem Codecompiler freigegeben wird. Sie möchten nicht den Weg des Ersetzens von DLLs gehen.

Also ich denke, die Antwort auf Ihre Frage ist keine. Sie müssen einen anderen Weg finden, um zu erreichen, was auch immer Sie versuchen.

+0

Ja. Ich stimme dem zu, was Sie vorschlagen. Ich kompiliere mein Projekt in Delphi 2007 IDE (nicht Befehlszeile). Ich habe keine Kontrolle darüber, welcher Ressourcencompiler in Delphi 2007 verwendet werden soll. Was ich brauche, ist, ob es irgendwelche Möglichkeiten gibt, CGRC.exe oder RC.exe in Delphi 2007 IDE zu verwenden, um meine eigene .rc-Datei zu kompilieren, die den dot (.) im Ressourcennamen. –

+0

Es scheint mir, dass die Frage, die Sie wirklich stellen sollten, lautet: "Wie kann ich einen Punkt in einen Delphi-Ressourcennamen aufnehmen?" Zeigen Sie Ihre Ressourcenskriptdatei an und zeigen Sie die Fehlermeldung an, die Sie erhalten, wenn Sie versuchen, sie zu kompilieren. (Aber seien Sie auch bereit, den Grund dafür zu verteidigen, dass Sie diesen Charakter im Namen überhaupt brauchen; Sie verwenden im Ressourcenskript und in Ihrem Code benannte Konstanten, sodass die genauen Namen keine Rolle spielen sollten.) –

+0

Siehe QC# 85202. Wenn Sie versuchen, den Inhalt der Ressource aus einer Datei zu erhalten (die normalerweise einen Punkt in ihrem Namen hat ...), wird sich BRCC32 beschweren. –

0

In Delphi 2007 ist die einzige Möglichkeit, die ich gefunden habe, RC.EXE oder in einem Pre-Build-Skript oder in einem Build-Tool-Skript (ich benutze CCNet).

Verwandte Themen