Vb Dll => standard Dll Converter

Hi

Are know any dll converter which can recomplile my vb dll to standart dll because i don't have an API in my VB Dll . . .:( I need make some API because my dll will be use by pascal game ....
Please help me <:(

Comments

  • : Are know any dll converter which can recomplile my vb dll to standart dll because i don't have an API in my VB Dll . . .:( I need make some API because my dll will be use by pascal game ....
    : Please help me <:(
    :
    I'm not quite sure what you're after. Why can't you use your VB DLL from your Pascal game? If it can use any other DLL, I don't see what is so special about your VB one that stops you using it there. I think you'd just have to translate the types used in the DLL functions in your VB app to their equivalent types in Pascal when writing the DLL declaration (I don't know any Pascal).

    Jonathan

    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

  • : : Are know any dll converter which can recomplile my vb dll to standart dll because i don't have an API in my VB Dll . . .:( I need make some API because my dll will be use by pascal game ....
    : : Please help me <:(
    : :
    : I'm not quite sure what you're after. Why can't you use your VB DLL from your Pascal game? If it can use any other DLL, I don't see what is so special about your VB one that stops you using it there. I think you'd just have to translate the types used in the DLL functions in your VB app to their equivalent types in Pascal when writing the DLL declaration (I don't know any Pascal).

    I think he's pointing out that VB DLLs have all the COM interface stuff, IDispatch, etc etc etc whereas a "regular" DLL (like API declarations use) is just a collection of functions exported in some manner. I don't believe it's possible to do what he's asking.


    [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]

    [code]
    $ select * from users where clue > 0
    no rows returned
    [/code]

  • : : : Are know any dll converter which can recomplile my vb dll to standart dll because i don't have an API in my VB Dll . . .:( I need make some API because my dll will be use by pascal game ....
    : : : Please help me <:(
    : : :
    : : I'm not quite sure what you're after. Why can't you use your VB DLL from your Pascal game? If it can use any other DLL, I don't see what is so special about your VB one that stops you using it there. I think you'd just have to translate the types used in the DLL functions in your VB app to their equivalent types in Pascal when writing the DLL declaration (I don't know any Pascal).
    :
    : I think he's pointing out that VB DLLs have all the COM interface stuff, IDispatch, etc etc etc whereas a "regular" DLL (like API declarations use) is just a collection of functions exported in some manner. I don't believe it's possible to do what he's asking.
    :
    I knew they had extra cruft in them, but was under the impression that if you ignored it all at the heart of it you just had a DLL with exported functions? Maybe I'm wrong.

    Jonathan

    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

  • : I knew they had extra cruft in them, but was under the impression that if you ignored it all at the heart of it you just had a DLL with exported functions? Maybe I'm wrong.

    I honestly don't know, but I'd wager it's not the same due to the fact that most of what's in an ActiveX DLL is class definitions. But maybe that's just in the TypeLib and the DLL itself still is just functions. That would be interesting to find out, I suppose.


    [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]

    [code]
    $ select * from users where clue > 0
    no rows returned
    [/code]

  • : : I knew they had extra cruft in them, but was under the impression that if you ignored it all at the heart of it you just had a DLL with exported functions? Maybe I'm wrong.
    :
    : I honestly don't know, but I'd wager it's not the same due to the fact that most of what's in an ActiveX DLL is class definitions. But maybe that's just in the TypeLib and the DLL itself still is just functions. That would be interesting to find out, I suppose.
    :
    :
    : [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]
    :
    : [code]
    : $ select * from users where clue > 0
    : no rows returned
    : [/code]
    :
    :

    Vb dll it's different from C++ or any Standart Dll because an information about entry points in library in Vbb dll is in Resource section in type lib . . . In C++ standard dll it's in Export section :| .. . How I can put to export section entrypoint about functions in my vb dll ?? Or how to compile an vb dll wich can runing without runtimes VB . . .

    But thank's for your help <:|


  • : Vb dll it's different from C++ or any Standart Dll because an information about entry points in library in Vbb dll is in Resource section in type lib . . . In C++ standard dll it's in Export section :| .. . How I can put to export section entrypoint about functions in my vb dll ?? Or how to compile an vb dll wich can runing without runtimes VB . . .

    I don't believe you can. VB DLLs only compile as ActiveX DLLs. VB6, at least. I'm also not sure it's possible to create a VB DLL that doesn't use the VB runtime. I'm sure some of the more clever hackers around here will prove me wrong somehow, but generally speaking, that's not what one uses VB for.


    [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]

    [code]
    $ select * from users where clue > 0
    no rows returned
    [/code]

  • : : Vb dll it's different from C++ or any Standart Dll because an information about entry points in library in Vbb dll is in Resource section in type lib . . . In C++ standard dll it's in Export section :| .. . How I can put to export section entrypoint about functions in my vb dll ?? Or how to compile an vb dll wich can runing without runtimes VB . . .
    :
    : I don't believe you can. VB DLLs only compile as ActiveX DLLs. VB6, at least. I'm also not sure it's possible to create a VB DLL that doesn't use the VB runtime. I'm sure some of the more clever hackers around here will prove me wrong somehow, but generally speaking, that's not what one uses VB for.
    :
    :
    : [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]
    :
    : [code]
    : $ select * from users where clue > 0
    : no rows returned
    : [/code]
    :
    :

    Do you know how it is in VB .NET ??

  • : Do you know how it is in VB .NET ??

    .NET assembles can also compile into DLLs, but they are even different still from any others we've talked about (as far as I know). They are designed to be run within the CLR. There are ways to register .NET DLLs as ActiveX DLLs so VB6 programs can call them, but you're still talking about classes and interfaces rather than functions. I could be wrong but I'd wager that .NET is even further from what you want than where you're at right now.


    [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]

    [code]
    $ select * from users where clue > 0
    no rows returned
    [/code]

  • : : Do you know how it is in VB .NET ??
    :
    : .NET assembles can also compile into DLLs, but they are even different still from any others we've talked about (as far as I know). They are designed to be run within the CLR. There are ways to register .NET DLLs as ActiveX DLLs so VB6 programs can call them, but you're still talking about classes and interfaces rather than functions. I could be wrong but I'd wager that .NET is even further from what you want than where you're at right now.
    :
    Indeed it is...you've gone from a meg and a half VB runtime to a 20 MB CLR and calling managed code from unmanaged code. Not nice.

    I'm still not convinced you can't just call the public functions in a VB DLL from another (non-VB) program. If I had time, I'd go try it. Maybe I will find time...sometime. ;-)

    Jonathan

    ###
    for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
    (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
    /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

  • : I'm still not convinced you can't just call the public functions in a VB DLL from another (non-VB) program. If I had time, I'd go try it. Maybe I will find time...sometime. ;-)

    You can't make functions accessible from outside a VB DLL. Best you can do is make a class that is GlobalMultiUse and then VB/COM/ActiveX fakes it to make it look like they're global functions. Take a look inside the Object Browser at the VB library. Procedures like Load and Unload are members of the VB.Global class. Conceptually, I don't see how you could access class methods without an instance of that class.


    [size=5][italic][blue][RED]i[/RED]nfidel[/blue][/italic][/size]

    [code]
    $ select * from users where clue > 0
    no rows returned
    [/code]

  • VB DLLs are already standard dlls. You can look at one using QuickView to determine this (shows up as a dll). You can also call it's exported functions using the Win32 API (such as for programmatically registering a dll: you'd call the exported DLLSelfRegister function).

    The problem is that the functions we use in VB, as infidel said, are not exported normally but are exposed through the com interface(s). Technically, you could call them dynamically if you knew how to locate them or else even VB wouldn't be able to execute the functions, but they weren't made to be used that way.

    Aye, you could convert it to a "normal" dll but you'd have a lot less work figuring out C and writing your dll there than figuring out the com interfaces, reverse-engineering the dll, adding new export entries and generally making the dll not fall over when you tried it.

    Everybody'd love to remove the requirement for the runtimes from a VB component but don't bother trying it. Virtually every bit of code you'd write would use some call/class/data type/etc. from the runtime. Theoretically, you could remove the portions of the runtime you actually needed, embed them in the component and remove the reference to msvbvmx0.dll but refer back to the previous paragraph.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories