its the .dll that is not created properly for VB6 to run as many already pointed out.

I use a .dll and I can use it in many ways, without any registration or using loadlibrary.

Code:
Private Declare Function MyFunc Lib "Test.DLL" (ByVal a As Long, ByVal b As Long) As Long
Private Declare Function MyFunc Lib "Test" (ByVal a As Long, ByVal b As Long) As Long
Private Declare Function MyFunc Lib "Test.DAT" (ByVal a As Long, ByVal b As Long) As Long
Private Declare Function MyFunc Lib "Folder\Test" (ByVal a As Long, ByVal b As Long) As Long
Private Declare Function MyFunc Lib "Folder\Test.DAT" (ByVal a As Long, ByVal b As Long) As Long
all the above works. I can even rename the .dll to whatever and even place it in subfolders.