Desisto, fiz 200 compilações, coloquei tirei, mas a função DLLCALL não está sendo localizada
Isso é coisa do xHarbour, se é que no xHarbour existe.
No Harbour 3.2 e 3.4, tem aquela xhb.hbc, que é LIB de compatibilidade com xHarbour.
Lá tem uma CallDll(). NÃO USE ESSA, pelo que dá pra ver, nem no xHarbour gostam do que é do xHarbour.
No Harbour 3.2 e 3.4 tem hb_DyCall(), função no core do Harbour, pra Windows ou Linux.
No Harbour 3.2 tem CallDll32() que no Harbour 3.4 foi renomeada pra CallDll() em hbmisc.hbc
Como exemplo de uso de DLL, a do RMChart pode ser interessante quando se tem muitas funções na DLL.
CREATE CLASS RmChart
VAR nHandle
METHOD New() INLINE ::nHandle := hb_libLoad( "RMChart.dll" ), SELF
METHOD Destroy() INLINE hb_libFree( ::nHandle )
METHOD AddBarSeries(a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", a, b, ::ToDouble( c ), ... )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
END CLASS
Trata-se apenas de carregar a DLL, liberar no final, e montar as chamadas à DLL.
O IMPORTANTÍSSIMO é que os tipos passados/retornados tem que ser compatíveis, senão é GPF.
Se no xHarbour não der pra fazer igual, tão perdendo tempo com ele.