other languages are using some naming when exporting from libraries, I did read something about that on the wiki by past ... i did not retreive the article at the moment.
You NEED to use a "DLL exports viewver" (3rd party software) to get exact name of your function
for exemple I did notice on a C++ written dll, the name of "char *decrypt(char *) became
_decrypt@_4 in the exports of the dll, because it was a fastcall function taking an argument as pointer which was 4 byte long
so I gave the exact nameS found by a 3rd party dll exports finder (instead of those 'brute' in the 'h' C++ header), and all went ok after that
kind of declaration (if i remeber) =>
function decrypt (s: pchar): pchar; cdecl; external 'mydllname' name '_decrypt_@4';