Presumably the problem is caused by calling your function from a different thread.

Perhaps it is a solution to put the SerOpen in a thread created by FPC and signal that thread from your dot-net-called function.

Am 09.03.24 um 16:24 schrieb Luca Olivetti via fpc-pascal:
I'm writing a dll that is used by a dot net application (32bits).

If I call SerOpen in the initialization section of the dll there is no problem, but if I call it from one of the exported functions it gives me an access denied (GetLastError gives me a 5), and I really need to call it from a function (due to some quirks in the calling program which is not under my control).

A search in the usual places tells me that in dot net opening a serial port with CreateFile (which is what SerOpen does) is forbidden, that you should use the SerialPort class (which I don't think I can do from my dll written in freepascal).

Is there any way to solve my problem?

Bye
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to