locked
64bit app doesn't get images from dll RRS feed

  • Question

  • I wrote a rather large app in C++ that uses a DLL for storing images...

    It works fine on my computer, but when I have someone else test it out on theirs, the images from the 64bit DLL are not read in to the program.

    They are in mine; what do I need to do??

    Tuesday, May 17, 2016 2:16 PM

Answers

  • It has turned out to be a very interesting case...

    Both computers were english language, both were 64-bit and they were basically the same model computer with the same RAM and even disk space.

    I found that I accidentally compiled the DLL as "Debug" instead of "Release".

    Once compiled for "Release" it worked on the other computer.  But it worked on MINE both ways !!  

    I am opening the DLL with Visual C++ and extracting the images (bitmaps)

    Still not sure why it worked for me both ways and not on the other computer... any ideas??



    If your DLL link to the CRT and the Debug-CRT is not installed on the second computer, then it cannot be loaded.

    Rudolf

    • Marked as answer by TallGuy63 Thursday, May 19, 2016 2:03 PM
    Thursday, May 19, 2016 1:14 PM

All replies

  • Hi TallGuy63,

    Since it is related to the VC++, I help you move this case to the VC++ forum for dedicated support.

    In addition, since it worked well in your machine, whether your machine has the same system configuration as others, 64 bit or 32 bit?

    Maybe your previous dll file was compiled for 32 bit system, so it doesn't work for 64 bit.

    https://msdn.microsoft.com/en-us/library/9yb4317s.aspx?f=255&MSPPError=-2147217396

    Best Regards,

    Jack


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Wednesday, May 18, 2016 8:01 AM
  • I wrote a rather large app in C++ that uses a DLL for storing images...

    It works fine on my computer, but when I have someone else test it out on theirs, the images from the 64bit DLL are not read in to the program.

    They are in mine; what do I need to do??

    First: can you load the dll? Or do you get an error while loading the dll? (do you do it implicitly or explicitly?) ... and then, how do you try to access the images? what functions are used? do you specify a language? maybe it's different on this machine?

    The first thing to do: explain exactely what you are doing and what goes wrong... by asking the right questions, the problems are almost always solved immediately :-)

    Rudolf

    Wednesday, May 18, 2016 12:30 PM
  • It has turned out to be a very interesting case...

    Both computers were english language, both were 64-bit and they were basically the same model computer with the same RAM and even disk space.

    I found that I accidentally compiled the DLL as "Debug" instead of "Release".

    Once compiled for "Release" it worked on the other computer.  But it worked on MINE both ways !!  

    I am opening the DLL with Visual C++ and extracting the images (bitmaps)

    Still not sure why it worked for me both ways and not on the other computer... any ideas??



    • Edited by TallGuy63 Wednesday, May 18, 2016 1:47 PM
    Wednesday, May 18, 2016 1:45 PM
  • Hi,

    >> Still not sure why it worked for me both ways and not on the other computer... any ideas??

    First you should know the difference between a debug DLL and release DLL.

    The biggest difference between these is that: In a debug build the complete symbolic debug information is emitted to help while debugging applications and the code optimization is not taken into account. While in release build the symbolic debug info is not emitted and the code execution is optimized. Also, because the symbolic info is not emitted in a release build, the size of the final executable is lesser than a debug executable.

    >> Not on other computer.

    You should confirm the same system configuration. You cannot run the 64-bit DLL on 32-bit operating system. Based on my search. Here is DLL tutorial. If you have free time, please see it. If it is not useful for you please ignore.

    Best Regards,

    Hart

    Note: This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; Therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. Click HERE to participate the survey.

    Thursday, May 19, 2016 2:46 AM
  • It has turned out to be a very interesting case...

    Both computers were english language, both were 64-bit and they were basically the same model computer with the same RAM and even disk space.

    I found that I accidentally compiled the DLL as "Debug" instead of "Release".

    Once compiled for "Release" it worked on the other computer.  But it worked on MINE both ways !!  

    I am opening the DLL with Visual C++ and extracting the images (bitmaps)

    Still not sure why it worked for me both ways and not on the other computer... any ideas??



    If your DLL link to the CRT and the Debug-CRT is not installed on the second computer, then it cannot be loaded.

    Rudolf

    • Marked as answer by TallGuy63 Thursday, May 19, 2016 2:03 PM
    Thursday, May 19, 2016 1:14 PM