Re: Implements Interface difference in VB IDE and Compiled version, is this a BUG!???

From: Nikola Bozovic (not-for-mail)
Date: 05/23/04


Date: Sun, 23 May 2004 05:16:56 +0200

Alex,

it is binary (not project) compatibility.

[SolarAngel]

"Alex Ivanov" <consul@collegeclub.com> wrote in message news:#hI0D60PEHA.620@TK2MSFTNGP10.phx.gbl...
| You need to set binary (not project) compatibility to the compiled dll.
|
| --
| Please reply to NG only. The email address is not monitored.
|
| Alex.
|
| "Nikola Bozovic" <not-for-mail> wrote in message
| news:OwTyTZwPEHA.2468@TK2MSFTNGP11.phx.gbl...
| > Yes,
| > project compatibility to previously compiled ActiveX project,
| > but this is not an error.
| > it seams that VB in IDE Runtime mode with ActiveX component doesn't
| implements Interfaces,
| > while in compiled versions he does.
| > But the most confusion thing is that when in group project everything
| works,
| > and in OLE Viewer of that component (class) there is no implements
| interface,
| > but in compiled there is.
| >
| > It seams to me that this is bug in VB vbdebug.dll that is used for
| debuging ActiveX components.
| > I haven't found any solution.
| >
| > I have gone more further, tested with ActiveX dll that implements all
| interfaces
| > I had in TLB, and than referenced that dll in my project EXE, compiled
| EXE.
| > And than referenced same DLL in ActiveX DLL and still it doesn't work.
| > But it seams that will work if both project are started sepparately each
| in his own instance of VB!?
| > this haven't work with TLB, but I have no use for that.
| >
| > Thanks for try.
| >
| >
| >
| >
| > "Alex Ivanov" <consul@collegeclub.com> wrote in message
| news:erQABAcPEHA.2740@TK2MSFTNGP11.phx.gbl...
| > | Have you set the binary compatibility mode in your project?
| > |
| > | --
| > | Please reply to NG only. The email address is not monitored.
| > |
| > | Alex.
| > |
| > | "Nikola Bozovic" <not-for-mail> wrote in message
| > | news:%23FVPfMAPEHA.1312@TK2MSFTNGP12.phx.gbl...
| > | > I have made TLB, type library from ODL with mktyplib.exe,
| > | > TLB file contains interface IWPSpecific,
| > | > I have successfully implemented that interface into my ActiveX DLL
| > | Project, into ClassModule.
| > | >
| > | > (this source ODL and TLB have coclass of IWPSpecific - have trying to
| > | figure it out why this doesn't work - previus copy of WPLib
| > | > had only interface IWPSPecific that in this library is renamed in
| > | _IWPSpecific)
| > | >
| > | > but now here is, problem:
| > | > I have compiled EXE project that creates this ActiveX Class with
| > | > set SpecificObject =
| > | CreateObject("ActiveXDLLProjectName.ClassModuleName")
| > | > than I have declared variable with same interface IWPSpecific
| > | > dim IWPSpecific as IWPSpecific
| > | > and last line:
| > | > set IWPSpecific = SpecificObject
| > | >
| > | > now this all works in this cases:
| > | > - both projects in VB IDE (group project)
| > | > - EXE Project in VB IDE and compiled ActiveX DLL
| > | > - both projects compiled
| > | >
| > | > but it doesn't work when:
| > | > - my EXE project in VB IDE and ActiveX DLL in separate instance of
| VB
| > | IDE
| > | > - compiled EXE with ActiveX DLL in VB IDE (Executed)!????
| > | >
| > | > Example code described above will Raise Error on last line with error
| Type
| > | Mismatch (13), but the type are same, cause it is type
| > | > from TypeLib !?
| > | > I have used OLE Viewer and have discovered that in VBIDE my class
| module
| > | doesn't implements IWPSPecific interface, but in compiled
| > | > version it does!? But the case of both project in VBIDE as group
| project
| > | is most strange, in this case it doesn't implement
| > | > interface but everything works, why!?
| > | >
| > | > for the first non working case I don't care cause I don't use it, but
| > | second not working case I care.
| > | > I have developed this interface to let other developers implement this
| > | interface into their projects.
| > | > And also they need ability to DEBUG their own projects.
| > | >
| > | > the most strange thing is argument "nonextensible" this argument is
| > | allowed only on dispinterface and interface but as you can see
| > | > VB adds this argument also on coclass!???
| > | >
| > | > Here is sample of OLE Viewer:
| > | > VBIDE:
| > | > ...
| > | > [
| > | > uuid(DBCEC607-C168-4B49-8C1F-67161473CD59),
| > | > version(1.1),
| > | > nonextensible
| > | > ]
| > | > coclass WPSpecific {
| > | > [default] interface _WPSpecific;
| > | > };
| > | > ...
| > | >
| > | > COMPILED:
| > | > ...
| > | > [
| > | > uuid(DBCEC607-C168-4B49-8C1F-67161473CD59),
| > | > version(1.1)
| > | > ]
| > | > coclass WPSpecific {
| > | > [default] interface _WPSpecific;
| > | > interface IWPSpecific;
| > | > };
| > | > ...
| > | >
| > | > The Main Question is now I can make this work!???
| > | > And not build ActiveX DLL with this types cause I don't won't to give
| this
| > | type lib to the end users!,
| > | > cause I don't wont to find out that this don't works also with ActiveX
| DLL
| > | q=)!
| > | >
| > | > I am desperate
| > | >
| > | > All help is appreciated
| > | >
| > | > [SolarAngel]
| > | >
| > | >
| > | >
| > | >
| > | >
| > |
| > |
| >
| >
|
|



Relevant Pages

  • Re: Implements Interface difference in VB IDE and Compiled version, is this a BUG!???
    ... You need to set binary compatibility to the compiled dll. ... > it seams that VB in IDE Runtime mode with ActiveX component doesn't ... > |> TLB file contains interface IWPSpecific, ...
    (microsoft.public.vb.com)
  • Re: Implements Interface difference in VB IDE and Compiled version, is this a BUG!???
    ... You need to set binary compatibility to the compiled dll. ... > it seams that VB in IDE Runtime mode with ActiveX component doesn't ... > |> TLB file contains interface IWPSpecific, ...
    (microsoft.public.vb.general.discussion)
  • Re: library project
    ... Note that for ActiveX, if you believe "the interface changes", then you are totally ... Extra methods, changed parameters, someone "improoving" a dll; these are my daily bread and butter. ... I'm not saying always staticly link, but I wouldn't rule out static linkage just because you have to build dialogs dynamically. ...
    (microsoft.public.vc.mfc)
  • Re: Implements Interface difference in VB IDE and Compiled version, is this a BUG!???
    ... it is binary compatibility. ... | You need to set binary compatibility to the compiled dll. ... |> it seams that VB in IDE Runtime mode with ActiveX component doesn't ... |> | doesn't implements IWPSPecific interface, ...
    (microsoft.public.vb.com)
  • Re: COM Interop with ActiveX nightmare...
    ... I dont think the ActiveX would be exporting the method directly via ordinal, ... You could try declaring the interface yourself and then getting an instance ... int ID public static extern int Load(string ... Problem, if I reference the 1st DLL, or import the source in my ...
    (microsoft.public.dotnet.general)

Loading