Creio que só temos esses exemplos (que foram doados por Devs de Node.js)
o que muda, nos métodos, é a que a versão M.T. sempre recebe como primeiro parâmetro, o Ponteiro de onde a biblioteca foi carregada... (const libHandle: PLibHandle)...
Esse ponteiro é retornado por referência, no método NFE_Inicializar (var libHandle: PLibHandle)... Você deve salvar esse endereço (ponteiro) em sua Thread, e informar ele em todos os métodos subsequentes, que chamar...
function NFE_Inicializar(var libHandle: PLibHandle; const eArqConfig, eChaveCrypt: PChar): longint;
function NFE_Finalizar(libHandle: PLibHandle): longint;
function NFE_Nome(const libHandle: PLibHandle; const sNome: PChar; var esTamanho: longint): longint;
function NFE_Versao(const libHandle: PLibHandle; const sVersao: PChar; var esTamanho: longint): longint;
Observe que a versão S.T. não há esse parâmetro (const libHandle: PLibHandle) com o endereço da Lib (a Lib salva internamente o Ponteiro)
function NFE_Inicializar(const eArqConfig, eChaveCrypt: PChar): longint;
function NFE_Finalizar: longint;
function NFE_Nome(const sNome: PChar; var esTamanho: longint): longint;
function NFE_Versao(const sVersao: PChar; var esTamanho: longint): longint;