Thread: Program Deployment and DLL/OCX Files?

  1. #1
    Registered User
    Join Date
    Jan 2008
    Posts
    18

    Question Program Deployment and DLL/OCX Files?

    I made a program in Borland C++ Builder 6 and the program uses a ActiveX control (VTChart). The program works fine on computers with Borland installed, however; not on other machines. I receive the message, "Class not registered." I believe this is caused by the required DLL/OCX files not being installed.

    I have looked through the help file for the VTChart and found a list of dependencies.
    The help files says that the items in the first list need to be in the Windows System directory. The second list of files, the help doc claims, were installed and registered by Borland.
    • List 1
    • VCFI32.OCX
    • VCFI32WZ.DLL


    • List 2
    • OC30.DLL
    • MFCANS32.DLL
    • MSVCRT20.DLL



    So here is my problem. I copied the files listed and brought them along with my exe to see if I could make it work. I thought that I would be able to put the first list of files in C:\Windows\system32 and then use regsvr32 on the second list of files.

    However, when I try to register these files, only the first one will register. The other two give me the message, "[DLL Path & Name] was loaded, but the DllRegisterServer entry point was not found."

    Am I doing something wrong? Anyone have any ideas.

    Please let me know if I have been unclear or if there more I can post!

    Thanks in advance.

  2. #2
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    Posts
    4,981
    >> only the first one will register
    That's ok. regsvr32 is for registering any COM objects that a binary file exposes. Not all DLL's (or binary files) expose COM objects.

    Personally, I wouldn't put any of those files in the windows system directory - especially if they already exist. I would put them all in your program directory. I would also run regsvr32 on the first list of files as well.

    gg

  3. #3
    Registered User
    Join Date
    Jan 2008
    Posts
    18
    Thanks for the tip.

    I finally figured it out. What I did was I went to http://www.dependencywalker.com/ and downloaded their program. I had found that I only needed to register the VCFI32.OCX file. I ran that file through the program I downloaded and it told me what other DLLs I needed (OC30.DLL, DWMAPI.DLL, MFCANS32.DLL, VCFIDL32.DLL). So the help file I have was wrong. I collected those DLLs and threw them all in the program directory and registered the one that was needed and it all worked.

    Thanks for the help!
    Last edited by dfghjk; 06-12-2008 at 08:10 AM. Reason: typos

  4. #4
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Make a real installer...

  5. #5
    Registered User
    Join Date
    Jan 2008
    Posts
    18
    I have a real installer and I was using it. The problem was not with the installer, but that I did not know what files I needed to include with it. The help file for the component that had dependencies was incorrect in the listing of the files that it said I needed.

    I was using regsvr32 while I was trying to figure out the problem. I knew that once I got it to work with that, I would be able to use the installer as well.

    BTW, the installer is Inno Setup.

  6. #6
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Doesn't Borland have some type of runtime? Then you should take the runtime installer and deploy it on the target machine instead of picking out individual dlls.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

Popular pages Recent additions subscribe to a feed