dll can't be found but it is there - dll

I have a W2K8 box running some automation software.
Once of the drivers that I need to load for it adds a dll into a sub-folder of the program (in Program Files (x86)).
When the program tries to load the driver it spits out an error that it can't find the file. The location that it is looking for the file is correct and if I browse to that location the file is definaelty there.
Other drivers that use similar techniology (i.e. dll's in that same folder) are working fine, in that they find there dll and load up.
If I install the software on a XP/Win7/W2k3 OS it all works fine for the driver in question.
Is there something funky that the OS is doing that is not making the file visible to the program. The account that the servive for this program is running under is an admin account, the same account that I am loggedin with on the console.
I am told that the drivers are all C++ based drivers if that makes any difference.
Thats for any leads
Mick

Just off hand, it sounds like a permissions issue. That the application in question doesn't have access to the Program Files folder. Is this something you have checked? If not, I would start there.

Related

Gamemaker Game EXE file won't load (game made 11years ago)

So I made a few gamemaker games about 11 years ago and tried to run the exe file.
When I run the exe file, nothing really happens just an error box pops up saying you can find out more here. And it points to 3 .tmp files located in the Temp folder on my computer.
Anyone know how to get these exe files working again?
The older versions of game maker games use an old runner that does not work with the newer versions of window (from Vista and up).
Using compatibilty mode does not fix this.
There is however a fix available that replaces the runner in the EXE with an updated one.
The tool was posted by Mark Overmars (the original creator of Game Maker) but the link in his topic is no longer active (the .zip does download but its an HTML page, not the actual tool).
http://gmc.yoyogames.com/index.php?showtopic=299895&p=2116603
It did work for me and using this program I was able to run a lot of older gm4 + games that I have played before on windows XP.
If its a must - you can always try to run it on an XP machine.
TL;DR:
There is a tool to make them work, I will upload it tonight.
EDIT: Turns out YoYoGames has the tool posted themselves;
http://help.yoyogames.com/attachments/token/lsj0pmbzqeu64hf/?name=GM_Convert_Game.zip
More information: http://help.yoyogames.com/hc/en-us/articles/216753218-Troubleshooting-Legacy-GameMaker
You can extract all the files to a directory, then drag your old .exe file onto the converter exe. It will then create a game_old.exe and game.exe and then you should be able to run the game.exe one.

Same dll files in my computer is x64, but on another computer they are x86, strange

I have an program which has the dependencies of MSVCP100D.DLL and MSVCR100D.DLL, x64 version.
This is the screenshot of DependencyWalker in my computer:
When I copy this program to my friend's computer, it can't run since there are no such two files. Then I copied the 2 dll files to his computer.
But it reports some error when executing the program, and when I use dependency walker to check, I found a very strange thing. This is screenshot from him:
Why they are "x64" in my computer and "x86" in his computer? How to fix it?
Update
My friend's system is win7 x64 too.
Finally, after several hours, we fixed it. There are too many strange things.
First. My system is win7 x64.
Here take MSVCP100D.DLL for example. There are two different MSVCP100D.DLL in my computer, one in windows/system32, one in windows/SysWOW64. They have different sizes.
Look at the screenshots:
But in "everything" they have same sizes(even same modified date), that I thought they are the same.
Then I send the dll from system32 via an IM software called QQ.
I dragged the file from windoes/system32 which is 991K, but QQ displayed the size is "726K":
But, if I copy the file into another dir, e.g. D:\, then send it again, the size is correct "991K".
Finally, I copied these dll files into another dir, and package them into zip file, they are sent correctly, and the program run well on my friends' computer.

Dll does not work properly on th another computer

I have program that uses a dll to make my device work. The driver for this device is installed on other computers.
My program works properly on my computer, but if I try to install it on another computer the dll no longer functions correctly (dll method can not find device).
But!, If I'm rebuild the program on the failing computer it works well.
What the reason of this behaviour?
Why it start work properly only after rebuilding ?
It could be binding to a different set of dlls that it is dependant on one one computer but these could be different (but compatible) on the other target machine, a recompile would mean that this code then linked against a different library version and functioned.
This is however a best guess as the question is not reall answerable in its current form

How to make my software run from pendrive?

I need to know how to make a software in Visual Studio(VC++ or VB) that can be run from a USB pendrive?
Is there anyway i can create this standalone software that doesnt need any installation in the PC in which the USB is plugged into?
Just save the executable on the drive. All referenced dlls also need to be stored there. If you have code access active you also need to make sure that the drive is allowed to provide executable code.
One more thought: If the system is linux ore mac then you should consder to switch to Java to be platform independend.
Yes, any native code application can run from a pen drive (so long as any dll's or associated files are also stored with it). .NET apps can also run... if the machine has the necessary run times installed.

Windows CE Device: Deploy using a .zip or a .cab on headless device?

I have a Windows CE device that we are deploying, but we have complete control of the software installed on it.
This is not a typical Windows Mobile device, this is a headless device that the user will not interact with. I know that on PDA-style WinCE devices, the .cab file is the preferred application distribution method.
However, on a headless device, we will be writing some type of upgrade/patch server that will ping a server for updates, download them, and auto-install when they are available.
Do I still want a .cab file, or is a .zip (or even something else) better?
What are the requirements for a .cab file - what kind of restrictions / requirements might get in the way and be an annoyance? What are the benefits?
I'd stick with CAB as a package since even headless devices can use the CAB extraction tool. If you ZIP it, then you have to add a ZIP support library and app. CAB also has the ability to add registry entries and define far more disparate target locations than a zip (I want x.dll in \Windows but prog.exe in my program folder - try that with a ZIP).
One thing to keep in mind is that wceload (the CAB extractor) uses a UI by default, so you're going to want to use things like the /noui switch for it.
If you're true headless this may not be an issue (not done that in a long while) but a fairly common "headless" configuration has display support and either the display simply isn't hooked up or is something like a NOP VGAFLAT driver. This allows you to run a shell and have access to all the nice shell APIs, but adds to the challenge that GWES will render dialogs onto the non-existent display.
OpenNETCF also has a CAB Installer SDK that you can use to completely remove any UI with by creating your own installer app. This may or may not be useful depending on the how and when the install happens (through HKLM\Init or otehr for example).