Jump to content

how to let VBA programmer import the objects I've written in .NET?


Recommended Posts

Posted

Hi, say I write a simple program and compiled in VS.NET called: test.dll

my problems are the following:

1) if I bring it to the client's machine and type: regsvr32 test.dll, it'll complains test.dll is registered but It can't be load, DllRegisterServer entry point was not found

2) after google a brunch, seems like the only time I need to do regsvr32 is when it is Active-X com object, so in this case I should be able to use the dll file by just copy to certain folder

2a) don't know which folder will make logical sense which I should copy to

2b) can't locate my dll file through regedit

2c) set test = CreateObject("test") doesn't work in ASP

2d) VBA can't find my dll either

Now I'm back to step 1, I got a test.dll file and I'd like to send to a client's machine, so the VBA program (or ASP) from client machine can use the objects that I've wrote.

a) how to register in a logical manner (should I have them make themselves a folder so I can dumb all my dlls init instead of WinNT/System32 )?

B) how to locate the dll which have been installed?

c) how to call that dll which have been installed?

Thank you very much


Posted

The best location would be in the program's own directory, and *not* in the systemdirs unless it's a globally used component like the C runtime DLLs.

how to locate the dll which have been installed?
If you import the DLL in your program or use LoadLibraryA/LoadLibraryW, it will find it automatically - the search locations are: current directory, system32, windows, and any others on the Path.
how to call that dll which have been installed?
If it's imported, just call it by name. If you used LoadLibraryA/LoadLibraryW, use GetProcAddress after the DLL is loaded, to obtain the address of the desired function. Call to that address to use the function of the DLL.
Posted

LLXX,

Thank you for the tips... it is good to know default path always search from local directory then move on to system32 directory and so on.

However, this is my first time try to make objects for VBA programmer and ASP programmer (not to metion they don't know any better then I do)

Would you mind show me the steps how you would do it; after you have your dll files compiled using VS.NET, what exactly would you do so that both ASP application and VBA application can use'em?

I'm quite confuse with the term "local directory" when it comes to VBA (Access) application and ASP application, since I don't exactly know local refer to the "local" directory they are working with, or "local" directory where VBA is installed (access has its own folder, so as MS word and excel...etc)

Your steps in detail will be very helpful, thank you for your time.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...