Segue abaixo o cod. que estou usando para acessar a DLL:
DECLARE
retorno1 ora_ffi.libhandletype; -- Variável utilizada no corpo do pacote
retorno2 ora_ffi.funchandletype; -- SetLink
BEGIN
retorno1 := ora_ffi.load_library ('C:\WINDOWS\SYSTEM32\', 'LibGko_CalFrete.dll');
IF ora_ffi.is_null_ptr (retorno1)
THEN-- se não achou o arquivo.
MESSAGE ('DLL NÃO ENCONTRADA!');
RAISE form_trigger_failure;
ELSE
MESSAGE ('retorno1: ok');
END IF;
-- Utilizado para função SetLink
/* Registra a função da DLL. */
retorno2 := ora_ffi.register_function (retorno1, 'TesteDLL', ora_ffi.pascal_std);
IF ora_ffi.is_null_ptr (retorno2)
THEN
MESSAGE ('LibGko_CalFrete: Função não encontrada - TesteDLL');
RAISE form_trigger_failure;
ELSE
MESSAGE ('LibGko_CalFrete: Função E N C O N T R A D A');
END IF;
END;
O Erro Ocorre na seguinte linha:
retorno2 := Ora_Ffi.Register_Function(retorno1, 'ITGko_CalFrete', Ora_Ffi.PASCAL_Std);