Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Osram

Alter Hase

  • »Osram« ist der Autor dieses Themas

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

1

08.12.2006, 18:27

MSVC8: Solution kopieren? CLSID?

Frage:
Ich habe einen "Ableger" meines 3D Editors gemacht indem ich die *.sln und *.vcproj kopiert habe und dort Änderungen in den Eigenschaften gemacht habe. Ist dies erlaubt, wenn nein, was kann passieren und wie macht man es richtig? Ausserdem benutzt der "Ableger" die selbe CLSId. Unter welchen Umständen ist das erlaubt? Wenn ich z.B. das ursprüngliche Programm umbenenne und ausführe funktioniert es ja auch und selbst Weiterentwicklungem die Z.B. das Format des Documents geändert haben, haben nie solche Probleme (s.u.) gemacht.

Details:
Der 3D Editor registriert sich als OLE Server. Eine Delphi Applikation greift drauf zu. Das lief auch über Jahre wunderbar. Jetzt habe ich wie oben gesagt eine zweite exe mit anderem Namen im Prinzip aus der selben *.sln gemacht. Sie hat als Hauptänderung unter Linker / System / SubSystem "Console" eingetragen, da ich in der MFC Applikation eine Console für Python Fehlermeldungen öffne. "SubSystem "Console" " in einer MFC Applikation nutzt Mike Balsciak (sp?) auch in einem Beispiel, was darauf hindeutet dass es nicht falsch ist.

Ich kann die MSVC generierte exe problemlos manuell starten. Wenn ich versuche, sie aus der Delphi Applikation per OLE aufzurufen, bekomme ich die hilfreiche :evil: Fehlermeldung "Fehler in der DLL.".

Vermutung:
Es gibt ja GUIDs in *.sln und/oder *.vcproj sowie die DLSID (auch eine GUID) welche in einem *.cpp hardcodiert ist. Kann irgend etwas übles passieren wenn zwei "verschiedene" (was immer das heisst...) Programme die selben GUIDs nutzen?
"Games are algorithmic entertainment."

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

09.12.2006, 16:25

Re: MSVC8: Solution kopieren? CLSID?

Zitat von »"Osram"«

Frage:
Ich habe einen "Ableger" meines 3D Editors gemacht indem ich die *.sln und *.vcproj kopiert habe und dort Änderungen in den Eigenschaften gemacht habe. Ist dies erlaubt, wenn nein, was kann passieren und wie macht man es richtig? Ausserdem benutzt der "Ableger" die selbe CLSId. Unter welchen Umständen ist das erlaubt? Wenn ich z.B. das ursprüngliche Programm umbenenne und ausführe funktioniert es ja auch und selbst Weiterentwicklungem die Z.B. das Format des Documents geändert haben, haben nie solche Probleme (s.u.) gemacht.

Ich kann mir nicht vorstellen, dass was schlimmes passiert, aber um sicher zu gehn könntest du einfach ein neues projekt anlegen und dort die dateien reinziehn, die das prog verwendet und dann die eigenschaften so ändern wie du sie brauchst, da kann dann nichts schief gehen. Sicherheitshalber solltest du aber nen neuen Ordner dafür anlegen in den dann kompiliert wird.

Osram

Alter Hase

  • »Osram« ist der Autor dieses Themas

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

3

09.12.2006, 18:14

Danke für die Antwort.

Teil der Panik in die ich verfallen bin ist dass wir gerade das neueste Update zu dem FluSi veröffentlicht haben und ich so in jeder Hinsicht im Stress bin.

Ich bin in der Tat dabei, jetzt eine Sache nach der anderen zu ändern um genau zu sehen, wann es knallt. Das blöde ist, wenn es knallt wird irgendwie die Registry zerschossen und es kostet lange diese manuell wieder zu reparieren. Eigentlich müsste ich die ganze Registry vorher aus regedt32 exportieren können und wenn sie zerschossen ist wieder importieren, oder? "Zerschossen" heisst dass weder das alte noch das neue Programm von dem Delphi Programm aus aufrufbar sind, was für unsere 3D Modellierer den fast kompletten Arbeitsstp bedeutet. Und ich hatte das Problem erst gemerkt, als es auf dem Rechner einer Modelliererin installiert war und nach Murphy natürlich gerade als die in der Endphase einer den Kunden bereits terminlich versprochenen Arbeit ist :(

Was ich mir immer überlege - als ich das alte Programm weiterentwickelt habe und auch es z.B. umbenannt habe, passierte ja auh nichts. Irgendwie muss also der neue "Ableger" anders sein aber dadurch dass er die selben GUID(s) verwendet ein problem kommen.
Oder aber es hat mit den GUIDS gar nichts zu tun und Subsystem/console + MFC + OLE schlagen sich. Ich vermute kaum einer wird mit der Kombination arbeiten :?
"Games are algorithmic entertainment."

Werbeanzeige