From: Tom Shelton on 18 Jun 2010 09:47 Dave Wurtz formulated the question : > On Jun 7, 5:16�pm, "Herfried K. Wagner [MVP]" <hirf-spam-me- > h...(a)gmx.at> wrote: >> Am 08.06.2010 00:05, schrieb Dave Wurtz: >> >>> In my VB.NET application, I'm trying to call a function from a 32-bit, >>> non-.NET dll file and I'm having problems. �I believe I have the >>> correct signature for the dll with: >> >>> <System.Runtime.InteropServices.DllImportAttribute("asdHTMLCompare.dll")> >>> �>[...] When I run this, I get the error: >>> An exception of type 'System.EntryPointNotFoundException' occurred in >>> ProductVision.Windows.Forms.dll but was not handled in user code. >>> Additional information: Unable to find an entry point named >>> 'BuildCompositeFile' in DLL 'asdHTMLCompare.dll'. >> >> Maybe the function has a different name. �You may want to use Dependency >> Walker (<URL:http://www.dependencywalker.com/>) to examine the function >> the DLL exports. >> >> -- >> � M S � Herfried K. Wagner >> M V P �<URL:http://dotnet.mvps.org/> >> � V B � <URL:http://dotnet.mvps.org/dotnet/faqs/> > > Thanks for the reply. > > As suggested, I downloaded the Dependency Walker program and opened > the DLL. In looking at the function I want to call and selecting > "Undecorate C++ Functions", this is what it shows: > > int BuildCompositeFile(char *,char *,char *,char *,char *,char *,int) > > Do I have the correct signature defined? > > Thanks. > Dave If the dll is exposing a decorated name, then you must alias the vb declare to the decorated name.... -- Tom Shelton
From: Dave Wurtz on 18 Jun 2010 14:02 On Jun 17, 11:25 pm, Armin Zingler <az.nos...(a)freenet.de> wrote: > Am 17.06.2010 22:57, schriebDaveWurtz: > > > > > > > <System.Runtime.InteropServices.DllImportAttribute("asdHTMLCompare.dll")> > > _ > > Public Shared Function BuildCompositeFile(ByVal szOldFile As > > String, _ > > > ByVal szNewFile As String, _ > > > ByVal szCompositeFile As String, _ > > > ByVal szOldPrefix As String, _ > > > ByVal szNewPrefix As String, _ > > > ByVal szCompositePrefix As String, _ > > > ByVal bCheckForChangedImages As Integer) As Integer > > End Function > > > I must be doing something wrong because when I call the function, I > > get the error: > > > An exception of type 'System.EntryPointNotFoundException' occurred in > > ProductVision.Windows.Forms.dll but was not handled in user code. > > Additional information: Unable to find an entry point named > > 'BuildCompositeFile' in DLL 'asdHTMLCompare.dll'. > > Try it with > Declare Function... > with same name and same types. > > Also try > Declare Ansi Function... > > -- > Armin- Hide quoted text - > > - Show quoted text - Thanks for the suggestion. Unfortunately, I get the same error message. This is how I typed it: Public Declare Function BuildCompositeFile Lib "asdHTMLCompare.dll" (ByVal szOldFile As System.String, _ ByVal szNewFile As System.String, _ ByVal szCompositeFile As System.String, _ ByVal szOldPrefix As System.String, _ ByVal szNewPrefix As System.String, _ ByVal szCompositePrefix As System.String, _ ByVal bCheckForChangedImages As Integer) As Integer I also tried Public Declare Ansi/Auto/Unicode Function .... and all of them throw the same exception: An exception of type 'System.EntryPointNotFoundException' occurred in ProductVision.Windows.Forms.dll but was not handled in user code Additional information: Unable to find an entry point named 'BuildCompositeFile' in DLL 'asdHTMLCompare.dll'. Any other suggestions? Thanks. Dave
From: Dave Wurtz on 18 Jun 2010 14:03 On Jun 18, 8:47 am, Tom Shelton <tom_shel...(a)comcast.invalid> wrote: > DaveWurtzformulated the question : > > > > > > > On Jun 7, 5:16 pm, "Herfried K. Wagner [MVP]" <hirf-spam-me- > > h...(a)gmx.at> wrote: > >> Am 08.06.2010 00:05, schriebDaveWurtz: > > >>> In my VB.NET application, I'm trying to call a function from a 32-bit, > >>> non-.NET dll file and I'm having problems. I believe I have the > >>> correct signature for the dll with: > > >>> <System.Runtime.InteropServices.DllImportAttribute("asdHTMLCompare.dll")> > >>> >[...] When I run this, I get the error: > >>> An exception of type 'System.EntryPointNotFoundException' occurred in > >>> ProductVision.Windows.Forms.dll but was not handled in user code. > >>> Additional information: Unable to find an entry point named > >>> 'BuildCompositeFile' in DLL 'asdHTMLCompare.dll'. > > >> Maybe the function has a different name. You may want to use Dependency > >> Walker (<URL:http://www.dependencywalker.com/>) to examine the function > >> the DLL exports. > > >> -- > >> M S Herfried K. Wagner > >> M V P <URL:http://dotnet.mvps.org/> > >> V B <URL:http://dotnet.mvps.org/dotnet/faqs/> > > > Thanks for the reply. > > > As suggested, I downloaded the Dependency Walker program and opened > > the DLL. In looking at the function I want to call and selecting > > "Undecorate C++ Functions", this is what it shows: > > > int BuildCompositeFile(char *,char *,char *,char *,char *,char *,int) > > > Do I have the correct signature defined? > > > Thanks. > >Dave > > If the dll is exposing a decorated name, then you must alias the vb > declare to the decorated name.... > > -- > Tom Shelton- Hide quoted text - > > - Show quoted text - I don't understand what you are saying. Can you expand on this and/or show an example? Thanks. Dave
From: Tom Shelton on 18 Jun 2010 15:22 Dave Wurtz submitted this idea : > On Jun 18, 8:47�am, Tom Shelton <tom_shel...(a)comcast.invalid> wrote: >> DaveWurtzformulated the question : >> >> >> >> >> >>> On Jun 7, 5:16�pm, "Herfried K. Wagner [MVP]" <hirf-spam-me- >>> h...(a)gmx.at> wrote: >>>> Am 08.06.2010 00:05, schriebDaveWurtz: >>>>> In my VB.NET application, I'm trying to call a function from a 32-bit, >>>>> non-.NET dll file and I'm having problems. �I believe I have the >>>>> correct signature for the dll with: >>>>> <System.Runtime.InteropServices.DllImportAttribute("asdHTMLCompare.dll")> >>>>> �>[...] When I run this, I get the error: >>>>> An exception of type 'System.EntryPointNotFoundException' occurred in >>>>> ProductVision.Windows.Forms.dll but was not handled in user code. >>>>> Additional information: Unable to find an entry point named >>>>> 'BuildCompositeFile' in DLL 'asdHTMLCompare.dll'. >>>> Maybe the function has a different name. �You may want to use Dependency >>>> Walker (<URL:http://www.dependencywalker.com/>) to examine the function >>>> the DLL exports. >> >>>> -- >>>> � M S � Herfried K. Wagner >>>> M V P �<URL:http://dotnet.mvps.org/> >>>> � V B � <URL:http://dotnet.mvps.org/dotnet/faqs/> >>> Thanks for the reply. >> >>> As suggested, I downloaded the Dependency Walker program and opened >>> the DLL. �In looking at the function I want to call and selecting >>> "Undecorate C++ Functions", this is what it shows: >>> int BuildCompositeFile(char *,char *,char *,char *,char *,char *,int) >>> Do I have the correct signature defined? >>> Thanks. >>> Dave >> >> If the dll is exposing a decorated name, then you must alias the vb >> declare to the decorated name.... >> >> -- >> Tom Shelton- Hide quoted text - >> >> - Show quoted text - > > I don't understand what you are saying. Can you expand on this and/or > show an example? > By default a dll compiled in C++ will mangle the names - this is to allow overriding of functions. So, your function BuildCompositeFile maybe exported as something like ?BuildCompositFile@@YXZ. That isn't probably the actual name - I the way names are mangaled or decorated has alot to do with the compiler, and the types being passed. But the point is, the entery point in the dll is probably NOT BuildCompositeFile. You can use dumpbin /exports on your dll to see the actual name table. So, say the name is as above, then you would need to add an alias to your VB declare: Declare Ansi Function BuildCompositFile Lib "asdHtmlCompare.dll" Alias "?BuildCompositFile@@YXZ" (.....) HTH -- Tom Shelton
From: Herfried K. Wagner [MVP] on 18 Jun 2010 15:26 Am 18.06.2010 20:03, schrieb Dave Wurtz: >> If the dll is exposing a decorated name, then you must alias the vb >> declare to the decorated name.... > > I don't understand what you are saying. Can you expand on this and/or > show an example? Use the name you see prior to choosing to undecorate the function. -- M S Herfried K. Wagner M V P <URL:http://dotnet.mvps.org/> V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 Prev: .Net Developer - Little Rock, AR (Citizens may only apply) Next: A little worried. |