<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Bo Berglund via fpc-pascal <<a href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>> schrieb am Mi., 22. März 2023, 11:18:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
>The object file won't be a problem for FPC on i386-win32 because it will be<br>
>a COFF file which is the default.<br>
<br>
When you say "on i386-win32" does that mean a 32 bit version of Windows as the<br>
host system for building the programs?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I mean a variant of FPC that targets the i386 platform together with the compiled units for i386-win32. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
If I have fpc 3.2.2 inbstalled on Windows 10 x64 I assume it is a 64 bit target<br>
exe which will be the output, right?<br>
<br>
If that is the case will the obj file work when building the exe?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">No. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Is it possible to check if the obj file is of the "COFF" type?<br>
Note that the timestamp of the obj file is 2003-05-29...<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">You could use the objdump utility provided with FPC (call it as "objdump -x <file>"). If it doesn't print any errors then it's a COFF file. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
>> 2) Is there a way to translate/convert the 32 bit Windows SPROMEPS.OBJ<br>
>> file into<br>
>> a 64 bit one such that it could be used for a 64 bit fpc compiler?<br>
>> It is the interface to the protection key driver on the Windows system...<br>
>><br>
><br>
>Aside from asking the company for a 64-bit variant or reverse engineering<br>
>the object file, no. How large is that object file?<br>
<br>
Size = 39330 bytes<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">That mean there's quite a bit of code in there, so it isn't trivially to reverse engineer... </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">><br>
>> It does work for our 32 bit Delphi7 programs on Windows 10 x64, so there<br>
>> must be some 32<->64 bit handling in Windows maybe?<br>
>><br>
><br>
>Are you really sure there's a driver involved? When you install it is there<br>
>a driver binary for both 32- and 64-bit? Cause 64-bit Windows *can not*<br>
>load 32-bit drivers.<br>
<br>
THALES has supplied a dedicated driver for Windows, which we use on all s/w<br>
installations. It is a rather big (2945376 bytes) installer file named "Sentinel<br>
System Driver Installer 7.6.0.exe"<br>
So, yes I am sure it is needed, whithout it the s/w cannot read the protection<br>
key.<br>
The driver has changed over the years as Windows progressed and we now use<br>
version 7.6.0<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Then you should ask them for a suitable 64-bit object file (I assume that they'll provide the one for C which they probably also did for you back then and then you might need to adjust the import unit a bit to be usable with x86_64-win64; as long as they also provide a C header that should be doable). </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div></div>