Archive for the ‘Windows Development’ Category
Posted by jpluimers on 2017/04/25
pestudio
The standard version of pestudio is free to download as a ZIP file (md5: D62BDE0319015C7CD5ABA8D03A36FFBF).
Once decompressed, pestudio does not require any installation nor does it change the system it is running on.
It is fully portable and runs on any Windows platform. Details about the features of this standard version are available at here [WayBack].
Download pestudio 8.54 [WayBack]
pestudio+
The professional version of pestudio must be purchased and provides the full set of features of the tool. Details about the professional version as well as the licence conditons are available here [WayBack].
Source: pestudio [WayBack]
A great guide is at PeStudio Standard [WayBack] which despite the name does an in-depth explanation on how to use this great tool.
–jeroen
Via: Guide / tutorial, nice tool to examine executables, find virus etc – David Berneda – Google+ [WayBack]
Posted in Development, Software Development, Windows Development | Leave a Comment »
Posted by jpluimers on 2017/04/19
I had a Fatal error Illegal macro definition in command line or defines page. thrown by BRCC32.exe in one of my Delphi projects.
As cgrc.exe could build the .rc file [source in Russian; WayBack], I reproduced it from the console with an Empty.rc file that has no content. That way I could rule out file content: now it had to be command-line arguments which is a different cause than any of the search results I found before.
My project was based on one of the DUnitX test projects. It ran in Delphi XE8, but the Delphi version doesn’t matter as BRCC32 hasn’t been updated since 1999.
Further below are the failure/success examples; this went wrong:
- DUnitX uses the
DUNITX-DEBUG define to enable debugging of DUnitX itself in DUnitX.inc which also supports the DUNITXDEBUG define in the same area.
- Delphi will translate a .RC file in a project into a BRCC32.exe call adding the project conditional defines and search paths
- BRCC32.exe doesn’t like hyphens in conditional defines throwing a non-descriptive error
Fatal error Illegal macro definition in command line or defines page.
So either removing DUNITX-DEBUG or changing it into DUNITXDEBUG solves the problem. Hence my pull-request.
Read the rest of this entry »
Posted in Delphi, Development, Resource Files and Scripts (.res/.rc), Software Development, Windows Development | Leave a Comment »
Posted by jpluimers on 2017/02/23
Some links that were useful getting back into using Delphi with resource scripts and include files:
Maybe I should have considered this alternative:
–jeroen
PS: a first go on a resource file structure for Version Information is below.
Read the rest of this entry »
Posted in Delphi, Development, QC, Resource Files and Scripts (.res/.rc), Software Development | Leave a Comment »
Posted by jpluimers on 2017/02/08
Be sure to read the details in Trying to recover from enhancement software that generates fake input incorrectly – The Old New Thing [WayBack] (much more Old New Think stuff below):
The most insightful part for me was this diagram listing where various methods enter the message pipeline (I added the GetMessage/PeekMessage entry):
Read the rest of this entry »
Posted in Conference Topics, Conferences, Delphi-Tage.de, Development, Event, Software Development, The Old New Thing, Windows Development | Leave a Comment »
Posted by jpluimers on 2017/01/05
Something to remember: Delphi To Go: Include resource files in your Delphi build process
Note it’s not enough to add a line like this to your .dpr file:
{$R 'New1.res' 'New1.rc'}
The resources actually needs to be part of your .dproj file (which basically is an XML msbuild file adhering to the MSBuild Project File Schema Reference).
That way, the BrccCompile target in $(BDS)\bin\CodeGear.Delphi.Targets will automatically pick it up during build.
I just checked and these target files support BrccCompile:
...\Embarcadero\RAD Studio\7.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\RAD Studio\8.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\RAD Studio\9.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\RAD Studio\10.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\RAD Studio\11.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\RAD Studio\12.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\Appmethod\13.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\Studio\14.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\Studio\15.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\Studio\16.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\Studio\17.0\bin\CodeGear.Delphi.Targets
...\Embarcadero\Studio\18.0\bin\CodeGear.Delphi.Targets
Which means it’s available as of Delphi 2007 until at least Delphi 10.1 Berlin and might even work in Delphi 2006
It could be a little bit flakey in Delphi 2007 (I’ve had many msbuild issues there) but more recent versions should be fine.
–jeroen
Related: I have a big file to add +’ at the beginning of a line and ‘ at the end…- shlomo abuisak – Google+
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Resource Files and Scripts (.res/.rc), Software Development | Leave a Comment »
Posted by jpluimers on 2016/12/22
A while ago I bumped into [WayBack] Where can I get the glossary of Microsoft’s standard translations for computer terms? – The Old New Thing
Since I’m a non-digital pack-rat as well, I love [WayBack] this comment by [WayBack] Ian Boyd:
We have an *old* copy of the Microsoft Style Guide – an actual book. From that book i’ll always remember that e-mail has a hyphen in it.
I’ve that book too and write e-mail the same way.
But books are often hard to search through, so I love this list that [WayBack] Raymond Chen made:
I especially like the [WayBack] interactive search, but with any outcome, please remember that the context of your translation is very important.
For instance, I vividly remember a project some 20+ years ago where we had to translate the words “Close” and “Cancel” in the realm of the insurance business.
All guides indicated “Close” should become “Sluiten” which in that realm is colloquial for “Afsluiten” which means “to take out an insurance” implying a totally wrong action. Similarly “Cancel” translated to “Annuleren” which in the same realm would mean “to cancel an insurance”.
So we went for very specific translations narrowing down what exactly would happen in those screens, like:
- “Verlaten” (English “Exit”)
- “Bewaren” or “Opslaan” (English “Save”)
- “Terug” (English “Back”)
–jeroen
Posted in Development, internatiolanization (i18n) and localization (l10), Software Development, The Old New Thing, Windows Development | Leave a Comment »
Posted by jpluimers on 2016/10/27
Slightly updated the answer the /D Y part will recursively accept taking ownership when directory listing is denied in the permissions:
To fix really broken permissions, the best is to run these two commands one after the other:
takeown /F /D Y "C:\path\to\folder" /R
icacls "C:\path\to\folder" /reset /T
The first one will give you ownership of all the files, however that might not be enough, for example if all the files have the read/write/exec permissions set to “deny”. You own the files but still cannot do anything with them.
In that case, run the second command, which will fix the broken permissions.
via: permissions – recursively change owner windows 7 – Super User
–jeroen
Posted in Batch-Files, Development, Power User, Scripting, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows 9, Windows Development, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista, Windows XP | Leave a Comment »
Posted by jpluimers on 2016/07/07
via: Resource decompiler
One day I’m going to need ResourceHacker as it has an -extract option to extract resources.
The above link even has a batch file that can server as a start automating that process:
@echo off
set file="GeneSys"
if exist %file%.rc del %file%.rc
ResHacker.exe -extract %file%.res, %file%.rc, Bitmap,,
ResHacker.exe -extract %file%.res, temp.rc, Icon,,
type temp.rc >>%file%.rc
ResHacker.exe -extract %file%.res, temp.rc, Dialog,,
type temp.rc >>%file%.rc
ResHacker.exe -extract %file%.res, temp.rc, Menu,,
type temp.rc >>%file%.rc
ResHacker.exe -extract %file%.res, temp.rc, StringTable,,
type temp.rc >>%file%.rc
ResHacker.exe -extract %file%.res, temp.rc, Accelerators,,
type temp.rc >>%file%.rc
ResHacker.exe -extract %file%.res, temp.rc, VersionInfo,,
type temp.rc >>%file%.rc
del temp.rc
I save it as extract.bat and a commandline usage: extract GeneSys will extract all the resources from GeneSys.res
–jeroen
PS: as the MASM forum sometimes nags with logins, I saved the above page in the wayback machine.
I’ve verified that [WayBack] ResourceHacker and the downloads ([WayBack] installer and [WayBack] portable) are there too.
Read the rest of this entry »
Posted in Development, Resource Files and Scripts (.res/.rc), Software Development, Windows Development | Leave a Comment »
Posted by jpluimers on 2016/02/12
For a short while (from Windows 2003 Service Pack 1 till Windows 2003 service pack 2) some updates used Windows Hotpatching.
Some links on the how/why and how to abuse it:
All because of this little post:
Hier ein Einblick in die Denkweise von Leuten, die Software auf CD-ROM verteilen und bei denen Release Zyklen in Monaten und nicht Minuten gemessen werd… – Kristian Köhntopp – Google+
–jeroen
Posted in C, Development, History, Software Development, The Old New Thing, Windows Development | Leave a Comment »