Michael Schnell wrote:
On 06/18/2015 06:01 PM, Bo Berglund wrote:
In the pas file referencing the obj file I have this:

IMPLEMENTATION
USES
    Windows;
{$L SPROMEPS.OBJ}  { LINK WITH THE SUPERPRO OBJECT FILE }

{ External functions }
FUNCTION RNBOsproFormatPacket( ApiPacket     : RB_SPRO_APIPACKET_PTR;
                                thePacketSize : WORD ) : WORD; STDCALL;
EXTERNAL;



It uses e.g. "STDCALL", so supposedly it is an ANSI C based interface.

If the obj file format is not GNU/FPC compatible and can't be used by the linker in fpc, " Safenet" might be able to provide a GNU C version of that file.

I can't safely comment on Windows-specific issues, we gave that up years ago (the hassle of accounting for every copy on various experimental machines etc. was more than it was worth).

Assuming standard linkage conventions the function should "just work", but the definition of RB_SPRO_APIPACKET_PTR might need checking.

But being able to successfully link might not be enough. It might be possible that the Safenet thingy does some encryption with the exe information file to allow only execution only if the correct dongle is found. That might or might not be compatible with fpc generated exes.

But as a cautionary tale, a colleague who didn't know x86 assembler once spent many lunchtimes stepping through AutoCAD to break their dongle lookup so that he could do something like running a slightly older (but more comprehensive) version than he'd got a formal license for. "Security by obscurity" doesn't work, particularly on an open system like a PC.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to