Thread View: de.comp.os.ms-windows.programmer
15 messages
15 total messages
Started by Edzard Egberts
Wed, 17 Dec 2014 09:54
Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Wed, 17 Dec 2014 09:54
Date: Wed, 17 Dec 2014 09:54
32 lines
1551 bytes
1551 bytes
Mein Ressourcen-Editor (BC 5.0 von 1995) ist wahrscheinlich nicht mehr ganz aktuell, denn beim Rechtsklick auf eine Programmdatei werden unter Win7 in den Eigenschaften kaum noch Einträge angezeigt, die über die Programmversion hinaus gehen. Ich brauche da die Produktinfos, Programmversion und das Icon. Mit welcher Software sollte ich also die Ressourcen bearbeiten und wo bekomme ich ein Beispiel der Ressource für die Produktinfos? Liegt das eigentlich auch an den Ressourcen: "Programmkompatibilitätsassistent - Dieses Programm wurde eventuell nicht richtig installiert." - laut Hilfe wird das nur für "ältere Programme" angezeigt. Wie bringe ich Windows 7 bei, dass meine frisch compilierte Software kein "älteres Programm" ist? Im C++-Standard bin ich garantiert kompatibler als Microsoft! ;o) "Benutzerkontensteuerung - Möchten Sie zulassen, dass durch das folgende Programm von einem unbekannten Herausgeber Änderungen an diesem Computer vorgenommen werden": Kann ich mit einem aktuellen Ressourcen-Editor den "Herausgeber: *Unbekannt*" auf "Herausgeber: *Ed*" ändern, oder wo sonst kommt das her? Noch eine ganz andere Frage: Zum Mitlesen taugt diese Gruppe mangels Traffic ja nicht so sehr, gibt es ein empfehlenswertes Forum in dem noch etwas anderes als .NET vorkommt? Ich kann mit dem ganzen Visual-Zeugs nichts anfangen, gibt es sonst noch Leute, die mit MinGW und der Win-API programmieren? Es wäre vielleicht doch ganz nützlich, wenn ich gelegentlich einen Blick auf den aktuellen Stand der Dinge werfen kann. ;o)
Re: Aktueller Ressourcen-Editor?
Author: "Stefan Kanthak"
Date: Wed, 17 Dec 2014 21:34
Date: Wed, 17 Dec 2014 21:34
219 lines
6285 bytes
6285 bytes
"Edzard Egberts" <ed_09@tantec.de> schrieb: > Mein Ressourcen-Editor (BC 5.0 von 1995) "Schuster, bleib bei Deinen Leisten" Besorg Dir ANSTAENDIGES Werkzeug! > ist wahrscheinlich nicht mehr ganz aktuell, denn beim Rechtsklick > auf eine Programmdatei werden unter Win7 in den Eigenschaften kaum > noch Einträge angezeigt, die über die Programmversion hinaus gehen. > Ich brauche da die Produktinfos, Programmversion und das Icon. > > Mit welcher Software sollte ich also die Ressourcen bearbeiten NICHT bearbeiten, sondern beim Erzeugen der Software generieren. Schreib Dir *.RC und erzeuge daraus mit dem kostenlosen Microsoft Resource-Compiler (den findest Du in JEDEM Platform oder Windows SDK) *.RES. In den *.RC referenzierst Du das Icon und das Manifest. Fuer Meldungen gibt's analog *.MC und den Message-Compiler; dessen Ausgabe braucht RC.EXE als Eingabe. Die *.RES linkst Du mit Deinem *.O[BJ] zur *.EXE/*.DLL Meine Makefiles erzeugen *.Manifest und "VERSION"-Ressource per "here"-Dokument: --- $NAME.MAK --- # Copyright (C) 2004-2014, Stefan Kanthak <skanthak@nexgo.de> TSA = http://timestamp.verisign.com/scripts/timstamp.dll # VeriSign SHA1 .... all: $(NAME).EXE SIGNTOOL.EXE Sign /A /D "$(DESCRIPTION)" /DU $(URL) /N "$(CERTIFICATE)" /T $(TSA) /V $(NAME).EXE $(NAME).EXE: $(NAME).OBJ $(NAME).RES LINK.EXE /NXCOMPAT /OPT:REF /RELEASE /SUBSYSTEM:WINDOWS,5.0 /VERSION:1.0 $(NAME).OBJ $(NAME).RES $(NAME).OBJ: $(NAME).C $(NAME).H CL.EXE /c /GA /GF $(NAME).C $(NAME).RES: $(NAME).TMP $(NAME).RC $(NAME).ICO $(NAME).MAN $(NAME)_ENU.BIN $(NAME)_GER.BIN RC.EXE /N /R /V $(NAME).TMP $(NAME).H $(NAME).RC $(NAME)_ENU.BIN $(NAME)_GER.BIN: $(NAME).MC MC.EXE -b -c -n -v $(NAME).MC $(NAME).TMP: $(NAME).MAK Rem <<$(NAME).TMP // Copyright (C) 2004-2014, Stefan Kanthak <skanthak@nexgo.de> #define WIN32_LEAN_AND_MEAN #define WINVER 0x0500 #define _WIN32_WINNT 0x0500 #define UNICODE #define _UNICODE #include <winresrc.h> #include <winuser.h> #include <winver.h> #include "$(NAME).RC" #ifdef _WIN32 #pragma code_page(1252) #endif LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL .... LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL .... LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 1 ICON "$(NAME).ICO" CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "$(NAME).MAN" VERSION 0x20141217L VS_VERSION_INFO VERSIONINFO #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0 #endif FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN FILEVERSION 0,8,1,5 PRODUCTVERSION 0,8,1,5 BEGIN BLOCK "StringFileInfo" BEGIN #ifdef _UNICODE BLOCK "040004B0" #else BLOCK "040004E4" #endif BEGIN VALUE "Comments", "...\r\n" "...\r\n" "...\0" VALUE "CompanyName", "$(COMPANY)\0" VALUE "FileDescription", "$(DESCRIPTION)\0" VALUE "FileVersion", "0.8.1.5\0" VALUE "InternalName", "$(NAME)\0" VALUE "LegalCopyright", "Copyright © 2004-2014, Stefan Kanthak\0" VALUE "LegalTrademarks", "\0" // VALUE "OLESelfRegister", "\0" VALUE "OriginalFilename", "$(NAME).EXE\0" // VALUE "PrivateBuild", "\0" VALUE "ProductName", "$(PRODUCT)\0" VALUE "ProductVersion", "0.8\0" VALUE "SpecialBuild", "Release\0" END // weitere Sprachen .... END BLOCK "VarFileInfo" BEGIN #ifdef _UNICODE VALUE "Translation", 0x0400, 1200, ... #else VALUE "Translation", 0x0400, 1252, ... #endif END END <<KEEP $(NAME).MAN: $(NAME).MAK Rem <<$(NAME).MAN <?xml version="1.0" encoding="UTF-8" standal ?> <!-- Copyright (C) 2004-2014, Stefan Kanthak --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="$(COMPANY).Tools.$(PRODUCT)" processorArchitecture="*" type="win32" version="0.8.1.5" /> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> .... <dependency> .... <description>$(DESCRIPTION)</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> </assembly> <<KEEP --- EOF --- > und wo bekomme ich ein Beispiel der Ressource für die Produktinfos? Siehe oben, oder MSDN: "VERSION" Ressource. > Liegt das eigentlich auch an den Ressourcen: > > "Programmkompatibilitätsassistent - Dieses Programm wurde eventuell > nicht richtig installiert." - laut Hilfe wird das nur für "ältere > Programme" angezeigt. Verwendest Du die MSVCRT.DLL? Selbst schuld, die ist seit Jahren NUR fuer die interne Nutzung durch Microsoft freigegeben! > Wie bringe ich Windows 7 bei, dass meine frisch > compilierte Software kein "älteres Programm" ist? Indem Du keine veralteten Schnittstellen des Win32API aufrufst, oder sie nicht mit falschen/veralteten Versionen der Argumente aufrufst. > Im C++-Standard bin ich garantiert kompatibler als Microsoft! ;o) Der Fisch stinkt vom Kopf her! > "Benutzerkontensteuerung - Möchten Sie zulassen, dass durch das folgende > Programm von einem unbekannten Herausgeber Änderungen an diesem Computer > vorgenommen werden": Du rufst Schnittstellen des Win32API auf, die privilegierte Aktionen ausfuehren koennen/sollen. Sag Windows per (als Ressource ins Programm eingebundenes) Manifest, dass das Programm unprivilegiert ablaufen soll. > Kann ich mit einem aktuellen Ressourcen-Editor den "Herausgeber: > *Unbekannt*" auf "Herausgeber: *Ed*" ändern, Nein. > oder wo sonst kommt das her? Von der fehlenden Authenticode-Signatur! Stefan [ -- Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823 Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung. Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04) --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Re: Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Thu, 18 Dec 2014 11:33
Date: Thu, 18 Dec 2014 11:33
108 lines
4276 bytes
4276 bytes
Stefan Kanthak wrote: > "Edzard Egberts" <ed_09@tantec.de> schrieb: > >> Mein Ressourcen-Editor (BC 5.0 von 1995) > > Besorg Dir ANSTAENDIGES Werkzeug! So vor fünf Jahren habe ich zuletzt danach gesucht, da hat diese Uralt-Software noch die Alternativen geschlagen und kostenlos von Microsoft gab es AFAIK nur den Compiler. Da muss ich mir also erst einmal das SDK angucken... >> Mit welcher Software sollte ich also die Ressourcen bearbeiten > > NICHT bearbeiten, sondern beim Erzeugen der Software generieren. > Schreib Dir *.RC und erzeuge daraus mit dem kostenlosen Microsoft > Resource-Compiler (den findest Du in JEDEM Platform oder Windows SDK) > *.RES. Seltsam, ich habe *.RES-Dateien, die bearbeite ich mit dem BC und mit "windres" erzeuge ich daraus eine statische Bibliothek zum Linken. > #include <winresrc.h> #include <winuser.h> #include <winver.h> > > #include "$(NAME).RC" > > #ifdef _WIN32 #pragma code_page(1252) #endif > > LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL Das ist aber doch kein C++? Irgend eine Makrodefinition? > VALUE "CompanyName", "$(COMPANY)\0" > VALUE "FileDescription", "$(DESCRIPTION)\0" > VALUE "FileVersion", "0.8.1.5\0" > VALUE "InternalName", "$(NAME)\0" > VALUE "LegalCopyright", "Copyright © 2004-2014, Stefan Kanthak\0" > VALUE "LegalTrademarks", "\0" > // VALUE "OLESelfRegister", "\0" > VALUE "OriginalFilename", "$(NAME).EXE\0" > // VALUE "PrivateBuild", "\0" > VALUE "ProductName", "$(PRODUCT)\0" > VALUE "ProductVersion", "0.8\0" > VALUE "SpecialBuild", "Release\0" Seltsam, meine RES sieht fast genau so aus, trotzdem wird in Eigenschaften -> Details nur die Dateiversion angezeigt und nicht Produktname, Produktversion und Copyright. Ich vermute, das liegt an der Sprache, die wird nämlich auch nicht angezeigt und Deine Language-Einträge (z.B. LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL) kriege ich nicht in die Ressource - der Compiler sagt da immer "BEGIN expected". Lässt sich jetzt schlecht sagen, ob das an einfacher Unfähigkeit meinerseits liegt und bloß anders formuliert werden muss, oder tatsächlich ein Problem der alten Software ist. An der Software kann es eigentlich nicht liegen, die funktioniert ja seit fast 20 Jahren. ;o) >> und wo bekomme ich ein Beispiel der Ressource für die >> Produktinfos? > > Siehe oben, oder MSDN: "VERSION" Ressource. Ich sehe schon, dass muss ich mir noch einmal von Grund auf neu angucken, wenn ich schon das *.RC nicht mehr kenne. Da war mal was... >> "Programmkompatibilitätsassistent - Dieses Programm wurde >> eventuell nicht richtig installiert." - laut Hilfe wird das nur für >> "ältere Programme" angezeigt. > > Verwendest Du die MSVCRT.DLL? Nein, MinGW (die aktuelle Version) und libgcc sowie libstdc++ werden statisch gelinkt. > Selbst schuld, die ist seit Jahren NUR fuer die interne Nutzung > durch Microsoft freigegeben! Ist die nicht für Visual-C++ und muss ständig als "Redistributable" installiert werden (z.B. für Treiber)? >> Wie bringe ich Windows 7 bei, dass meine frisch compilierte >> Software kein "älteres Programm" ist? > > Indem Du keine veralteten Schnittstellen des Win32API aufrufst, oder > sie nicht mit falschen/veralteten Versionen der Argumente aufrufst. Das wird dann wohl nichts, da MinGW viele neue Sachen nicht anbietet. Aktualisierte Argumente wären sicher toll, dann spart man sich so etwas: string SID= "S-1-5-32-545"; ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); >> "Benutzerkontensteuerung - Möchten Sie zulassen, dass durch das >> folgende Programm von einem unbekannten Herausgeber Änderungen an >> diesem Computer vorgenommen werden": > > Du rufst Schnittstellen des Win32API auf, die privilegierte Aktionen > ausfuehren koennen/sollen. Sag Windows per (als Ressource ins > Programm eingebundenes) Manifest, dass das Programm unprivilegiert > ablaufen soll. Okay, "Manifest", "Authenticode-Signatur", da melde ich mich vielleicht noch mal, wenn ich das alles nachgelesen habe. Die Information, dass das Programm über die API-Aufrufe sortiert wird, ist jedenfalls interessant, das hätte ich nicht gedacht. Dass sich ein Programm Windows gegenüber richtig präsentiert, macht so langsam fast mehr Mühe, als die eigentliche Funktionalität zu schreiben. ;o)
Re: Aktueller Ressourcen-Editor?
Author: "Stefan Kanthak"
Date: Thu, 18 Dec 2014 12:25
Date: Thu, 18 Dec 2014 12:25
106 lines
3672 bytes
3672 bytes
"Edzard Egberts" <ed_09@tantec.de> schrieb: > Stefan Kanthak wrote: >> "Edzard Egberts" <ed_09@tantec.de> schrieb: >> >>> Mein Ressourcen-Editor (BC 5.0 von 1995) >> >> Besorg Dir ANSTAENDIGES Werkzeug! > > So vor fünf Jahren habe ich zuletzt danach gesucht, da hat diese > Uralt-Software noch die Alternativen geschlagen und kostenlos von > Microsoft gab es AFAIK nur den Compiler. Da muss ich mir also erst > einmal das SDK angucken... > >>> Mit welcher Software sollte ich also die Ressourcen bearbeiten >> >> NICHT bearbeiten, sondern beim Erzeugen der Software generieren. >> Schreib Dir *.RC und erzeuge daraus mit dem kostenlosen Microsoft >> Resource-Compiler (den findest Du in JEDEM Platform oder Windows SDK) >> *.RES. > > Seltsam, ich habe *.RES-Dateien, die bearbeite ich mit dem BC und mit > "windres" erzeuge ich daraus eine statische Bibliothek zum Linken. Einer von beiden oder beide kann ganz offensichtlich nicht die von Windows erwarteten Ressourcen erzeugen. Mit dem 8 Jahre alten Platform SDK for Windows Server 2003 R2 erzeugte Programme und DLLs zeigen die bei Dir auftretenden Macken NICHT: >> #include <winresrc.h> #include <winuser.h> #include <winver.h> >> >> #include "$(NAME).RC" >> >> #ifdef _WIN32 #pragma code_page(1252) #endif >> >> LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL > > Das ist aber doch kein C++? Irgend eine Makrodefinition? Nein, eine RC-Datei. Ich trenne die Meta-Informationen fuer Windows von den eigentlichen, vom Programm benutzten Ressourcen. [...] >> Verwendest Du die MSVCRT.DLL? > > Nein, MinGW (die aktuelle Version) und libgcc sowie libstdc++ werden > statisch gelinkt. > >> Selbst schuld, die ist seit Jahren NUR fuer die interne Nutzung >> durch Microsoft freigegeben! > > Ist die nicht für Visual-C++ und muss ständig als "Redistributable" > installiert werden (z.B. für Treiber)? MSCVRT.DLL WAR (mit Betonung auf WAR) fuer Visual C (ohne ++) 6.0. Sie ist seit LANGER Zeit eine Windows-Komponente und nicht mehr fuer Programme von Dritt-Anbietern freigegeben. Neuere "MSVCRT.DLL" tragen Versionsnummern in den Dateinamen: VC 2002: MSVCR70.DLL (plus MSVCP70.DLL fuer C++) VC 2003: MSVCR71.DLL (plus MSVCP71.DLL fuer C++) VC 2005: MSVCR80.DLL (plus MSVCP80.DLL fuer C++) VC 2008: MSVCR90.DLL (plus MSVCP90.DLL fuer C++) VC 2010: MSVCR100.DLL (plus MSVCP100.DLL fuer C++) VC 2012: MSVCR110.DLL (plus MSVCP110.DLL fuer C++) VC 2013: MSVCR120.DLL (plus MSVCP120.DLL fuer C++) .... Siehe dazu <https://support.microsoft.com/kb/2019667>; zu "staendig" siehe <https://technet.microsoft.com/library/security/ms11-025> JFTR: Treiber laufen im Kernel-Modus, die koennen keine DLLs verwenden. JFTR: "richtige" Windows-Programme brauchen keine MSVCRT, die rufen nur das Win32-API auf.-P >>> Wie bringe ich Windows 7 bei, dass meine frisch compilierte >>> Software kein "älteres Programm" ist? >> >> Indem Du keine veralteten Schnittstellen des Win32API aufrufst, oder >> sie nicht mit falschen/veralteten Versionen der Argumente aufrufst. > > Das wird dann wohl nichts, da MinGW viele neue Sachen nicht anbietet. > > Aktualisierte Argumente wären sicher toll, dann spart man sich so etwas: > > string SID= "S-1-5-32-545"; > ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); Du solltest auf UNICODE umstellen! Der Support fuer die nur ANSI unterstuetzenden Wintendos wurde vor VIELEN Jahren eingestellt! [...] Stefan [ -- Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823 Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung. Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04) --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Re: Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Thu, 18 Dec 2014 13:50
Date: Thu, 18 Dec 2014 13:50
48 lines
1741 bytes
1741 bytes
Stefan Kanthak wrote: > "Edzard Egberts" <ed_09@tantec.de> schrieb: >> Stefan Kanthak wrote: >>> "Edzard Egberts" <ed_09@tantec.de> schrieb: >>> #include <winresrc.h> #include <winuser.h> #include <winver.h> >>> >>> #include "$(NAME).RC" >>> >>> #ifdef _WIN32 #pragma code_page(1252) #endif >>> >>> LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL >> >> Das ist aber doch kein C++? Irgend eine Makrodefinition? > > Nein, eine RC-Datei. Also muss ich das anders herum sehen - der Ressource-Compiler versteht die Funktionen in den Includes? Kommt mir irgendwie durcheinander vor, aber wie schon gesagt, muss ich mir von Grund auf ansehen. > Neuere "MSVCRT.DLL" tragen Versionsnummern in den Dateinamen: > VC 2002: MSVCR70.DLL (plus MSVCP70.DLL fuer C++) > VC 2003: MSVCR71.DLL (plus MSVCP71.DLL fuer C++) Ja, habe ich schon gesehen, brauche ich normalerweise nicht. > JFTR: Treiber laufen im Kernel-Modus, die koennen keine DLLs verwenden. Damit man eine C-Schnittstelle erhält, muss der OceanOptics OmniDriver eine bestimmte Java-Version und ein VC-Redistributable installieren. Vorgestern noch gemacht (beim Test des Installers) und wenn es unbedingt sein muss, suche ich Dir noch die Beschreibung im Programmers-Manual heraus. Aber darüber haben wir uns schon einmal unterhalten, das ist die Software, die unter Win7 32bit dauernd Exceptions wirft. Ich denke mir, dass es Programmierer gibt, die noch weniger Ahnung haben, als ich! :o) >> string SID= "S-1-5-32-545"; >> ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); > > Du solltest auf UNICODE umstellen! Eclipse und FLTK laufen mit Utf8 und den angegebenen String halte ich eindeutig für ANSI. UNNICODE ist doch irgendetwas Seltsames von MS, das brauche ich nicht. ;o)
Re: Aktueller Ressourcen-Editor?
Author: "Stefan Kanthak"
Date: Thu, 18 Dec 2014 14:24
Date: Thu, 18 Dec 2014 14:24
77 lines
2416 bytes
2416 bytes
"Edzard Egberts" <ed_09@tantec.de> schrieb: > Stefan Kanthak wrote: >> "Edzard Egberts" <ed_09@tantec.de> schrieb: >>> Stefan Kanthak wrote: >>>> "Edzard Egberts" <ed_09@tantec.de> schrieb: > >>>> #include <winresrc.h> #include <winuser.h> #include <winver.h> >>>> >>>> #include "$(NAME).RC" >>>> >>>> #ifdef _WIN32 #pragma code_page(1252) #endif >>>> >>>> LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL >>> >>> Das ist aber doch kein C++? Irgend eine Makrodefinition? >> >> Nein, eine RC-Datei. > > Also muss ich das anders herum sehen - der Ressource-Compiler versteht > die Funktionen in den Includes? Wie kommst Du auf dieses duenne Brett? RC.EXE nutzt den C-Praeprocessor, und der versteht #define etc. > Kommt mir irgendwie durcheinander vor, > aber wie schon gesagt, muss ich mir von Grund auf ansehen. [...] >> JFTR: Treiber laufen im Kernel-Modus, die koennen keine DLLs verwenden. > > Damit man eine C-Schnittstelle erhält, muss der OceanOptics OmniDriver > eine bestimmte Java-Version und ein VC-Redistributable installieren. Mit dem Treiber kommunizierst Du per IO_CTL. Dummerweise gibt's Vollidioten, die solche Schnittstellen unter grossen Haufen dampfenden und stinkenden Mists verstecken. > Vorgestern noch gemacht (beim Test des Installers) und wenn es unbedingt > sein muss, suche ich Dir noch die Beschreibung im Programmers-Manual > heraus. Aber darüber haben wir uns schon einmal unterhalten, das ist die > Software, die unter Win7 32bit dauernd Exceptions wirft. Sag ich doch: dampfender stinkender Mist. > Ich denke mir, dass es Programmierer gibt, die noch weniger Ahnung > haben, als ich! :o) Schlimmer geht immer! >>> string SID= "S-1-5-32-545"; >>> ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); >> >> Du solltest auf UNICODE umstellen! > > Eclipse und FLTK laufen mit Utf8 Fuer Deine abartigen Vorlieben kann ich nix.-P > und den angegebenen String halte ich eindeutig für ANSI. Dummerweise muss der vor der Uebergabe an den Windows-Kernel in UTF-16LE uebersetzt werden. > UNNICODE ist doch irgendetwas Seltsames von MS, das brauche ich nicht. ;o) Ach? "Utf8" ist kein UNICODE? Stefan [ -- Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823 Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung. Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04) --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Re: Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Thu, 18 Dec 2014 15:26
Date: Thu, 18 Dec 2014 15:26
35 lines
1157 bytes
1157 bytes
Stefan Kanthak wrote: > "Edzard Egberts" <ed_09@tantec.de> schrieb: >> Stefan Kanthak wrote: >>> "Edzard Egberts" <ed_09@tantec.de> schrieb: >>>> Stefan Kanthak wrote: >>>>> "Edzard Egberts" <ed_09@tantec.de> schrieb: >>> JFTR: Treiber laufen im Kernel-Modus, die koennen keine DLLs verwenden. >> >> Damit man eine C-Schnittstelle erhält, muss der OceanOptics OmniDriver >> eine bestimmte Java-Version und ein VC-Redistributable installieren. > > Mit dem Treiber kommunizierst Du per IO_CTL. > Dummerweise gibt's Vollidioten, die solche Schnittstellen unter grossen > Haufen dampfenden und stinkenden Mists verstecken. <> > Sag ich doch: dampfender stinkender Mist. Hehe, im Chor! Du ahnst gar nicht, was mir das Ding schon auf die Nerven gegangen ist. :o( >>> Du solltest auf UNICODE umstellen! >> >> Eclipse und FLTK laufen mit Utf8 > > Fuer Deine abartigen Vorlieben kann ich nix.-P So etwas nennt sich "Alleinstellungsmerkmal"! ;o) >> UNNICODE ist doch irgendetwas Seltsames von MS, das brauche ich nicht. ;o) > > Ach? "Utf8" ist kein UNICODE? Utf8 ist Unicode. UNICODE sieht mir irgendwie microsoftig aus, so etwas wie HANDLE, DWORD, etc. ;o)
Re: Aktueller Ressourcen-Editor?
Author: "Stefan Kanthak"
Date: Thu, 18 Dec 2014 15:41
Date: Thu, 18 Dec 2014 15:41
33 lines
878 bytes
878 bytes
"Edzard Egberts" <ed_09@tantec.de> schrieb: > Stefan Kanthak wrote: >> "Edzard Egberts" <ed_09@tantec.de> schrieb: >>> Stefan Kanthak wrote: >>>> Du solltest auf UNICODE umstellen! >>> >>> Eclipse und FLTK laufen mit Utf8 >> >> Fuer Deine abartigen Vorlieben kann ich nix.-P > > So etwas nennt sich "Alleinstellungsmerkmal"! ;o) Raucherecke! >>> UNNICODE ist doch irgendetwas Seltsames von MS, das brauche ich nicht. ;o) >> >> Ach? "Utf8" ist kein UNICODE? > > Utf8 ist Unicode. UNICODE sieht mir irgendwie microsoftig aus, so etwas > wie HANDLE, DWORD, etc. ;o) #define UNICODE ist C.-P Stefan [ -- Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823 Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung. Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04) --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Re: Aktueller Ressourcen-Editor?
Author: Stefan Reuther
Date: Thu, 18 Dec 2014 22:23
Date: Thu, 18 Dec 2014 22:23
30 lines
1051 bytes
1051 bytes
Edzard Egberts wrote: > Stefan Kanthak wrote: >>"Edzard Egberts" <ed_09@tantec.de> schrieb: >>>Aktualisierte Argumente wären sicher toll, dann spart man sich so etwas: >>>string SID= "S-1-5-32-545"; >>>ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); >> >>Du solltest auf UNICODE umstellen! > > Eclipse und FLTK laufen mit Utf8 und den angegebenen String halte ich > eindeutig für ANSI. UNNICODE ist doch irgendetwas Seltsames von MS, das > brauche ich nicht. ;o) Da Windows-Syscalls aber kein UTF-8 fressen, musst du zwischendurch konvertieren. Das einfachste ist dabei, nach WCHAR bzw. wchar_t zu konvertieren und dann die ...W-Funktionen zu benutzen. Wenn's ein konstanter String ist wie oben ist das natürlich verzichtbar. Falls dein Einwand sich auf den const_cast bezog, der ist laut MSDN nicht notwendig: http://msdn.microsoft.com/de-de/library/windows/desktop/aa376402%28v=vs.85%29.aspx BOOL WINAPI ConvertStringSidToSid( _In_ LPCTSTR StringSid, _Out_ PSID *Sid ); ('C' in 'LPCTSTR' für 'const'). Stefan
Re: Aktueller Ressourcen-Editor?
Author: "Stefan Kanthak"
Date: Thu, 18 Dec 2014 23:52
Date: Thu, 18 Dec 2014 23:52
25 lines
634 bytes
634 bytes
"Stefan Reuther" <stefan.news@arcor.de> schrieb: [...] > Da Windows-Syscalls aber kein UTF-8 fressen, Es gibt seit Windows 8 gaaanz wenige Win32-Schnittstellen, die UTF-8 "fressen": * DnsQuery_UTF8() <http://msdn.microsoft.com/library/ms682016.aspx> * DnsWriteQuestionToBuffer_UTF8() <http://msdn.microsoft.com/library/ms682034.aspx> .... Stefan [ -- Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823 Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung. Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04) --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Re: Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Fri, 19 Dec 2014 08:21
Date: Fri, 19 Dec 2014 08:21
31 lines
1258 bytes
1258 bytes
Stefan Reuther wrote: > Edzard Egberts wrote: >> Stefan Kanthak wrote: >>> "Edzard Egberts" <ed_09@tantec.de> schrieb: >>>> Aktualisierte Argumente wären sicher toll, dann spart man sich so etwas: >>>> string SID= "S-1-5-32-545"; >>>> ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); > Da Windows-Syscalls aber kein UTF-8 fressen, musst du zwischendurch > konvertieren. Das einfachste ist dabei, nach WCHAR bzw. wchar_t zu > konvertieren und dann die ...W-Funktionen zu benutzen. Das Einfachste ist, ohne Konvertierung die A-Funktionen zu benutzen und auf Sonderzeichen zu verzichten. Du darfst nicht vergessen, dass ich für Windows *und* Linux programmiere und mit WCHAR komme ich da nicht besonders weit. > Falls dein Einwand sich auf den const_cast bezog, der ist laut MSDN > nicht notwendig: > http://msdn.microsoft.com/de-de/library/windows/desktop/aa376402%28v=vs.85%29.aspx > BOOL WINAPI ConvertStringSidToSid( > _In_ LPCTSTR StringSid, > _Out_ PSID *Sid > ); > ('C' in 'LPCTSTR' für 'const'). Das muss eine neuere API sein, die von MinGW verlangt eindeutig einen char* und den c_str() darauf frisst der Compiler nicht. Ich bin ganz bestimmt nicht der Einzige, den die Abkündigung von Win-XP kalt erwischt hat. ;o)
Re: Aktueller Ressourcen-Editor?
Author: Stefan Reuther
Date: Fri, 19 Dec 2014 15:28
Date: Fri, 19 Dec 2014 15:28
44 lines
1682 bytes
1682 bytes
Edzard Egberts wrote: > Stefan Reuther wrote: >>Edzard Egberts wrote: >>>Stefan Kanthak wrote: >>>>"Edzard Egberts" <ed_09@tantec.de> schrieb: >>>>>Aktualisierte Argumente wären sicher toll, dann spart man sich so etwas: >>>>>string SID= "S-1-5-32-545"; >>>>>ConvertStringSidToSidA(const_cast< char* >(SID.c_str()), &psid); > >>Da Windows-Syscalls aber kein UTF-8 fressen, musst du zwischendurch >>konvertieren. Das einfachste ist dabei, nach WCHAR bzw. wchar_t zu >>konvertieren und dann die ...W-Funktionen zu benutzen. > > Das Einfachste ist, ohne Konvertierung die A-Funktionen zu benutzen und > auf Sonderzeichen zu verzichten. Du darfst nicht vergessen, dass ich für > Windows *und* Linux programmiere Ich auch. > und mit WCHAR komme ich da nicht besonders weit. Meine Lösung: die Anwendung arbeitet intern durchgängig mit UTF-8. Kurz vor den Syscalls sitzt eine Portierungsschicht, die das unter Windows nach WCHAR übersetzt (...oder CP_ACP, die paar Zeilen haben dann auch nicht mehr wehgetan; ja, ich hab's unter Win95 getestet. Weil's geht!) und unter Linux nach was-auch-immer-die-libc-gerade-braucht. >>Falls dein Einwand sich auf den const_cast bezog, der ist laut MSDN >>nicht notwendig: >>http://msdn.microsoft.com/de-de/library/windows/desktop/aa376402%28v=vs.85%29.aspx >> BOOL WINAPI ConvertStringSidToSid( >> _In_ LPCTSTR StringSid, >> _Out_ PSID *Sid >> ); >>('C' in 'LPCTSTR' für 'const'). > > Das muss eine neuere API sein, die von MinGW verlangt eindeutig einen > char* und den c_str() darauf frisst der Compiler nicht. Das wäre dann ein Bug / Versehen in den MinGW-Headern, den man zumindest Microsoft nur schwer anlasten kann. Stefan
Re: Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Mon, 22 Dec 2014 08:17
Date: Mon, 22 Dec 2014 08:17
39 lines
1680 bytes
1680 bytes
Stefan Reuther wrote: > Edzard Egberts wrote: >> Das Einfachste ist, ohne Konvertierung die A-Funktionen zu benutzen und >> auf Sonderzeichen zu verzichten. Du darfst nicht vergessen, dass ich für >> Windows *und* Linux programmiere > > Ich auch. > >> und mit WCHAR komme ich da nicht besonders weit. > > Meine Lösung: die Anwendung arbeitet intern durchgängig mit UTF-8. Kurz > vor den Syscalls sitzt eine Portierungsschicht, die das unter Windows > nach WCHAR übersetzt (...oder CP_ACP, die paar Zeilen haben dann auch > nicht mehr wehgetan; ja, ich hab's unter Win95 getestet. Weil's geht!) > und unter Linux nach was-auch-immer-die-libc-gerade-braucht. Das ist wahrscheinlich die sichere Seite. Bin einfach davon ausgegangen, UTF8 ohne Sonderzeichen ist ANSI und daher sind die A-Funktionen verwendbar. Ich sollte aber wirklich noch ausprobieren, was mit Sonderzeichen in Dateinamen passiert... >>> Falls dein Einwand sich auf den const_cast bezog, der ist laut MSDN >>> nicht notwendig: >>> http://msdn.microsoft.com/de-de/library/windows/desktop/aa376402%28v=vs.85%29.aspx >>> BOOL WINAPI ConvertStringSidToSid( >>> _In_ LPCTSTR StringSid, >>> _Out_ PSID *Sid >>> ); >>> ('C' in 'LPCTSTR' für 'const'). >> >> Das muss eine neuere API sein, die von MinGW verlangt eindeutig einen >> char* und den c_str() darauf frisst der Compiler nicht. > > Das wäre dann ein Bug / Versehen in den MinGW-Headern, den man zumindest > Microsoft nur schwer anlasten kann. Oder das ist erst später von Microsoft geändert worden. Habe es jedenfalls noch einmal überprüft, Header und Funktionsname sind gleich, aber bei MinGW ist es ein LPSTR und das gilt für WinVer >= 0x0500.
Re: Aktueller Ressourcen-Editor?
Author: Uwe Kotyczka
Date: Mon, 19 Jan 2015 04:44
Date: Mon, 19 Jan 2015 04:44
39 lines
1988 bytes
1988 bytes
Am Mittwoch, 17. Dezember 2014 09:54:40 UTC+1 schrieb Edzard Egberts: > Mein Ressourcen-Editor (BC 5.0 von 1995) ist wahrscheinlich nicht mehr > ganz aktuell, denn beim Rechtsklick auf eine Programmdatei werden unter > Win7 in den Eigenschaften kaum noch Einträge angezeigt, die über die > Programmversion hinaus gehen. Ich brauche da die Produktinfos, > Programmversion und das Icon. > > Mit welcher Software sollte ich also die Ressourcen bearbeiten und wo > bekomme ich ein Beispiel der Ressource für die Produktinfos? Möglicherweise hat das gar nichts mit Deinem Ressourcen-Editor zu tun. Ich kenne BC 5.0 nicht, aber ich nehme an, daß Du damit die in die *.exe gelinkte *.res Datei (welche beim Schreiben des Programms irgendwann mal aus einer *.rc Datei erzeugt worden sein dürfte) nachträglich verändern willst. Meine Vermutung ist, daß Du noch nicht mitbekommen hast, daß im Windows 7 Explorer mit "Kontextmenü -> Eigenschaften -> Details" zwar die Versionsresourcen angezeigt werden, aber nicht mehr _vollständig_. Unter XP hast Du mit mit "Kontextmenü -> Eigenschaften -> Version" noch alle Strings zusehen bekommen, sogar selbst definierte Kategorien. (Neben FileVersion und ProductVersion konntest Du als Programmierer z.B. auch OsterEiVersion hineinschreiben. XP zeigte dann z.B. OsterEiVersion: "2.0 rot" an.) Seit Vista ist das anders. Da der gemeine Nutzer von den vielen Angaben verwirrt werden könnte (Stell Dir die vielen von OsterEiVersion: "2.0 rot" provozierten schlaflosen Nächte der bedauernswerten Nutzer vor!), werden nun auch Einträge wie PrivateBuild, die immer in der Versionsressource stehen, auf Betriebssystemseite ausgeblendet. Probier doch einfach mal Folgendes: Nimm irgendein Dir bekanntes Programm (*.exe), schau es Dir in Deinem Ressourceneditor an, kopiere auf einen USB-Stift und schau die Versionsangaben im XP-Explorer und im Win7-Explorer an. Die Unterschiede werden Dir ganz sicher auffallen. HTH
Re: Aktueller Ressourcen-Editor?
Author: Edzard Egberts
Date: Tue, 20 Jan 2015 08:17
Date: Tue, 20 Jan 2015 08:17
70 lines
3180 bytes
3180 bytes
Uwe Kotyczka wrote: > Am Mittwoch, 17. Dezember 2014 09:54:40 UTC+1 schrieb Edzard Egberts: >> Mein Ressourcen-Editor (BC 5.0 von 1995) ist wahrscheinlich nicht mehr >> ganz aktuell > Möglicherweise hat das gar nichts mit Deinem Ressourcen-Editor zu tun. > Ich kenne BC 5.0 nicht, Sei froh! BC wie "Body Count" (http://de.wikipedia.org/wiki/Body_Count_%28Album%29) - die perfekte musikalische Entsprechung des mentalen Zustands, der sich bei Benutzung dieser Software einstellte. :oO > aber ich nehme an, daß Du damit die in die > *.exe gelinkte *.res Datei (welche beim Schreiben des Programms > irgendwann mal aus einer *.rc Datei erzeugt worden sein dürfte) > nachträglich verändern willst. Nein, damit habe ich *.res-Dateien verändert, diese mit MinGW-windres compiliert und das Ergebnis statisch gelinkt. Jetzt habe ich mir ein *.rc-Script gebastelt, das sich mit dem Editor bearbeiten und ebenfalls mit windres compilieren lässt. Das ist perfekt - keine zusätzliche Software mehr nötig! > Meine Vermutung ist, daß Du noch nicht mitbekommen hast, daß im > Windows 7 Explorer mit "Kontextmenü -> Eigenschaften -> Details" > zwar die Versionsresourcen angezeigt werden, aber nicht mehr > _vollständig_. Unter XP hast Du mit mit "Kontextmenü -> Eigenschaften > -> Version" noch alle Strings zusehen bekommen, sogar selbst definierte > Kategorien. Selbst definierte Kategorien schluckt der windres nicht, aber mein Skript funktioniert jetzt und zeigt die grundlegenden Sachen wie Produktname, Version, Copyright und Hersteller an, damit bin ich zufrieden. > Seit Vista ist das anders. Das hat aber niemanden interessiert, weil die Leute entweder das XP-Downgrade benutzt, oder gleich auf Linux gewechselt sind. > Da der gemeine Nutzer von den vielen > Angaben verwirrt werden könnte (Stell Dir die vielen von > OsterEiVersion: "2.0 rot" provozierten schlaflosen Nächte der > bedauernswerten Nutzer vor!), werden nun auch Einträge wie > PrivateBuild, die immer in der Versionsressource stehen, auf > Betriebssystemseite ausgeblendet. Da wird sogar das Löschen einzelner Einträge angeboten. Und bei der Gelegenheit habe ich auch noch Manifeste entdeckt - dachte, das muss man vielleicht auch benutzen: Jetzt findet Microsoft es also schon toll, an bestehender Software herumzufummeln, die sind wirklich völlig winzigweich im Hirn! > > Probier doch einfach mal Folgendes: Nimm irgendein Dir bekanntes > Programm (*.exe), schau es Dir in Deinem Ressourceneditor an, > kopiere auf einen USB-Stift und schau die Versionsangaben im > XP-Explorer und im Win7-Explorer an. Die Unterschiede werden Dir > ganz sicher auffallen. Nein, das ist so ziemlich das gleiche, damit ist dieses Problem wirklich gelöst. Ich habe auch herausgefunden, dass sich Icons wunderbar mit Gimp erstellen lassen (http://www.catalyst.net.nz/tutorial/creating-a-multi-resolution-favicon) und muss nur noch herausfinden, welche Auflösungen/ Farbtiefen wirklich gebraucht werden. Bei der Aussicht für ca. 20 Programme jeweils 15 Icons zu malen, habe ich den Rechner ausgestellt und erst einmal Leiterplatten bestückt. In meinen Augen sind die Windows-Macher die größten Arschlöcher dieses Planeten.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads