how to call c++ DLL in vb 6
-
dear all i have read something in internet how to call c++ .dll, and tried to declare functions in vb 6, but however after i compiled, the error was there:" can't find DLL entry point in xxxx.dll". so how to invoke the c++ member function in one .dll, someone can give me help to realize step by step. thanks a lot in advance. note: probably one library has several classes, so how can i know which library i can use or how to use it? rgds
-
dear all i have read something in internet how to call c++ .dll, and tried to declare functions in vb 6, but however after i compiled, the error was there:" can't find DLL entry point in xxxx.dll". so how to invoke the c++ member function in one .dll, someone can give me help to realize step by step. thanks a lot in advance. note: probably one library has several classes, so how can i know which library i can use or how to use it? rgds
There are different types of .DLL files. If it's a COM-based .DLL, you can add a reference to it, then instantiate the classes in it using Dim:
Dim x As New SomeClassInLibrary
If it's a library .DLL, then you have to use the Declare statement to setup the call. But, in order to use this, you MUST have the documentation on the functions you want to use so you can properly write the parameter information into the Declare. Without it, you're guessing and are going to get it wrong.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
dear all i have read something in internet how to call c++ .dll, and tried to declare functions in vb 6, but however after i compiled, the error was there:" can't find DLL entry point in xxxx.dll". so how to invoke the c++ member function in one .dll, someone can give me help to realize step by step. thanks a lot in advance. note: probably one library has several classes, so how can i know which library i can use or how to use it? rgds
-
There are different types of .DLL files. If it's a COM-based .DLL, you can add a reference to it, then instantiate the classes in it using Dim:
Dim x As New SomeClassInLibrary
If it's a library .DLL, then you have to use the Declare statement to setup the call. But, in order to use this, you MUST have the documentation on the functions you want to use so you can properly write the parameter information into the Declare. Without it, you're guessing and are going to get it wrong.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008thanks for your reply, my dll has 2 files: icon_c(object file library) and icon.dll. i have documentation already and detail of all functions' parameters. so how i can call the .dll functions in vb step by step. i also know i need to export the function name of .DLL. then i can call in vb, but i dun know how to export in .dll. i need your further help. thanks a lot. Note: someone already created the .dll, i just want to use it. rdgs
modified on Thursday, May 14, 2009 2:44 AM
-
thanks, i have read it already. the difference is i got .dll already. in part 2, that is user created own .dll, they can export by themselves..here, i can't export or i dun know how to export functions name in .DLL. thanks. please help me, how to export functions name of .DLL.
-
thanks, i have read it already. the difference is i got .dll already. in part 2, that is user created own .dll, they can export by themselves..here, i can't export or i dun know how to export functions name in .DLL. thanks. please help me, how to export functions name of .DLL.
zhiyuan16 wrote:
that is user created own .dll, they can export by themselves..here, i can't export or i dun know how to export functions name in .DLL
You don't have to export anything - it's already being done by the .DLL. The VB code in that example shows you how to Declare functions supplied by an external library. Granted, there are no parameters in those two functions exposed by the example .DLL, but you add those just like you add parameters to normal VB functions you define.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
dear all i have read something in internet how to call c++ .dll, and tried to declare functions in vb 6, but however after i compiled, the error was there:" can't find DLL entry point in xxxx.dll". so how to invoke the c++ member function in one .dll, someone can give me help to realize step by step. thanks a lot in advance. note: probably one library has several classes, so how can i know which library i can use or how to use it? rgds
Why are you still using VB6 ?
Christian Graus Driven to the arms of OSX by Vista. "I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )
-
zhiyuan16 wrote:
that is user created own .dll, they can export by themselves..here, i can't export or i dun know how to export functions name in .DLL
You don't have to export anything - it's already being done by the .DLL. The VB code in that example shows you how to Declare functions supplied by an external library. Granted, there are no parameters in those two functions exposed by the example .DLL, but you add those just like you add parameters to normal VB functions you define.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
thanks for your reply, i tried to do that already. the error occurred: "file not found: dll or couldn't find entry point of member function". so what happened? need your further help. thanks
The name of the function you use in the Declare statement must match EXACTLY what the exported function name in the .DLL is. Or, you can use the Alias keyword in the Declare statement to provide the exported name and name the function anything you want in your code. Also, the .DLL has to be either in the same folder as your .EXE that is calling it, or in a folder listed in the PATH environment variable.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
The name of the function you use in the Declare statement must match EXACTLY what the exported function name in the .DLL is. Or, you can use the Alias keyword in the Declare statement to provide the exported name and name the function anything you want in your code. Also, the .DLL has to be either in the same folder as your .EXE that is calling it, or in a folder listed in the PATH environment variable.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
thanks alot friend. sorry to ask you one more question: i just would like to confirm we can call all c++ .dll in vb? that means the member functions of c++ .dll were already exported for any c++ .DLL? thanks Rgds
Yes
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
Yes
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008 -
thanks. i have one more question: sorry. if one DLL has one or several classes and their own member functions. how i can call their own corresponding member functions. could you provide me with any detail. thanks a lot in advance. rgds
It would have to be exposed at a COM-based .DLL. You can't get at them otherwise. PInvoke won't do you any good since it only works with function library .DLL's.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008