I have a game that I have made in C# and it installs and runs as expected under Windows XP. However when I install it on a Windows 7 machine, then it either simply doesn't work (without any error message) or it gives a generic error message. Is there anything special that I have to do in order to be able to use SDL.Net with a Windows 7 computer?
UPDATE: I have just been informed that it doesn't even work on XP. Both XP machines I tried it on had SDL.NET installed (I didn't know that one of them already had it when I used it for testing). So pretty much if SDL.NET SDK is not installed on a computer my program doesn't work. Does anyone have some insight into what exactly needs to accompany my program from SDL in order to make it work properly? right now I have all the base SDL_*.dll and SdlDotNet.dll and Tao.Sdl.dll. More needed? Or is there some kind of SDL runtime that I have to install with my program in order to use it? I am really stuck with this one.
Have you tried running it as admin? I don't mean happening to be logged in as an admin account, I mean right click the exe and Run As Administrator? If you do that and don't get the error, then your problem will be quite easily solved, without requiring it to always Run As Admin.
Added every Dll including those that weren't explicitly needed and it now works. Apparently there are some hidden links between dll's that I didn't know about.
Related
I just recently upgraded to Windows 10 and ever since I have upgraded I can't get into VB6. I keep getting the System Registry error. I have googled and tried about everything and nothing seems to work. Running VB6 as Administrator is not an option, don't ask but we can't have admin to our computers we have to be logged in as users. The way we use to fix it was to trick Windows 7 log on as Admin run VB6 as Admin then switch me back to user and it worked, but this no longer works. Does anyone have any suggestions that currently have VB6 working as a user and not admin? I really don't want to resort to have to run it out of my virtual machine :( Thanks in advance!
Amanda,
I know it is 3 years later and I wonder what you did. and my solution may be late.
I moved VB6 Enterprise to a Windows10 machine, I did not upgrade the machine to Win10 with the IDE. However to make it work for some of my clients with Win10 machines I:
Back up all the VB6 files, folder and directories.
Using control panel in Win10, uninstall VB6 app. That's right, uninstall!
Using the original install disk, running it as an Administrator, install the program.
If the program has been updated to a later version, you need to get a copy of the latest version and copy over the one that was installed.
Or, Sweet Talk your IT guy into making you a new install disk with the latest version you are supposed to be running.
Go to the folder where the exe file is installed, Right Click on it and open the Properties, and go to the Compatibility tab.
Choose run as an administrator, and also click the Run this program in compatibility mode for Windows XP Service Pack3, or if it shows Latest version of Windows XP try that. You may need to check with your IT department.
Warning: if the VB6 program uses any non-Microsoft tools you may need to register them by hand.
I suspect this has already been worked out for you, but I put it here for anyone that may stumble across it, needing it.
I built a Lazarus program and it's now in exe form.
I am able to run it on two of my computers running XP and Vista.
However, there are other computers as well running XP, Vista and Win7 but I cannot get it to run at all on them.
There are no errors, nothing... Has anyone else had this issue?
The program is connecting to a postgres DB on my LAN server.
Any idea on fixing this is really valued.
NEW INFO:
Maybe I'm wrong but here's a thought... On the development machine, I initially got an error like **libpq.dll* not found when I first tried to connect to postgres. Then after setting the path, it was fine. I'm thinking now if it cannot find that library and that's why it's not able to run.
If this is the case, should my line Application.OnException:=#CatchErr; catch the error? If not how else should I check if this dll or anything else is missing?
First, a sincere and big THANK YOU to Marco and MArtyn for the great tips and guidelines hat got me thinking of this strange issue.
Here's what happened...
I installed a fresh copy of Windows 7 and XP. As usual it did not work.
Then I suspected the old problem of libpq and then I copied libpq.dll from my working OS and put it in the application folder. By the way this machine has no Lazarus or Postgres. The moment I did this, I got my first error message saying that msvcr100.dll was missing.
And then I copied that as well. So the cycle of copy pasting went on for each and every error until I had finally brought these files to my 'non-working'.
libpq.dll - 9.2.1.12263 - PosgreSQL Access Library
msvcr100.dll - 10.0.40219.1 - Microsoft C Runtime Library
ssleay32.dll - 1.0.1.2 - OpenSSL Shared Library
libeay32.dll - 1.0.1.2 OpenSSL Shared Library
libintl.dll - 0.18.1.0 - LGPLed libintl for Windows NT/2000/XP/Vista/7
Once these files came in, the problem was gone!
Now the program works great :)
Thanks for all your inputs!
I now have to see what the above files have to say about their licenses as I have to distribute the app to other users. But I'm glad at least we figured out the problem.
No, base Lazarus programs don't require special permissions. Of course it could be that a specific functionality in the program requires special permissions (like access to ports below 1024, access to certain paths etc).
Also be aware that EXE's downloaded from what the system considers insecure sources (internet, certain kinds of shares) might be blocked by default. If that is the case, if you take the properties of the .EXE in windows explorer, there will be an "unblock" button.
Anything network related of course requires proper configuration of the firewall. The popups that query you might not always come, in case of doubt configure the firewall manually.
I'm not sure if this is the right place to ask, seeing as I don't currently have any code to share, but perhaps someone has an insight.
I have a very old Flash MX projection (.exe file) that was written and compiled in flash MX 2004. It's a simple interactive app - a test where a user picks an answer to a question and pushes ENTER to move to the next question.
The projection works fine on WinXP SP3 but doesn't work in win7, failing with a "class not registered" error.
It does work after I install flash player activex (I tried installing the latest, and also legacy version 6 r71), but then it doesn't register any keyboard commands and crashes a short while after a key is pressed.
Any idea what can be causing this?
So far I've tried fiddling with IE security settings, disabling DWM and windows themes, compatibility settings, etc., with no luck.
Also, despite the fact that the compiled projection is supposed to have all necessary components to run inside, it doesn't run if flash.ocx isn't registered. Isn't that weird?
Any help will be appreciated. I know this is old stuff and no one promises compatibility etc. And I don't even have the code as of now (not sure I can find it; assume I can't) - but this app is somewhat important to my company and this really seems like a "small" issue - if I could just find it...
Update - it kinda works if install the latest flash player and run it in compatibility mode - but it hangs after about a minute, regardless of what i do.
if i run it without compatibility mode, it doesn't run with a "library not registered" error.
You might want to repackage it.
Extract SWF from projector executable, for example, using this tool.
Get the newest standalone Flash Player and check if your .swf-file works with it.
Now export new projector file.
If this doesn't work for you, the only other way to do this is to recompile your .swf from source.
I agree with Ale's solution.
Have you tried Window's compatibility options to run the .exe as it would in an older compatibility mode ? This may work.
I got a weird problem with my VB app that has got me very confused. I am updating an existing program. I had to add some processing queue capabilities. On my system, unit testing worked great but when I compile it and run it on a different computer (a network server machine) it first tries to open an office install. If I cancel this, the program seems to run fine. The problem is that this program will be run in the background and I can't be hitting cancel each time it runs.
So my question is this: what is going on here? I'm usually a java developer we eclipse so I'm used to being able to include all the needed libs into the jar files automatically. It doesn't seem like the case with VB6. it seems like it expects all the same libs to be on all the systems. Is there any way to tell what might be triggering this?
The only thing I can think of that is causing it is that I'm using the "OpenProcess" function in the kernal32 lib. that the only major change I have made.
any help would be very appricated. thanks!
EDIT:
It seems that multiple versions of word were installed on the system and it was screwing things up somehow. We uninstalled one and it fixed it.
I ran into this a while ago and it was related to my installer for the VB6 app overwriting some system files for Office that it shouldn't have. Any time one of the System dlls was accessed Windows would determine that something was wrong and the Office installer would start up.
The short-term fix was to let the Office Installer repair the broken chain of dlls.
The long-term fix was to never overwrite built-in Windows System dlls.
You could also check out the Microsoft Fix it Center.
I made a minor change to a legacy Visual C++ / MFC app built with VS 2008. I changed some UI resources in the .rc file and compiled without any problems, then deployed it on my client's system. However, the program which was previously doing fine now fails to run on exactly one of their servers. It works fine on my laptop and on their other servers, many of whom are basically identical to the one having the trouble.
The weird thing however is that there is absolutely no error message whatsoever. No message box, no errorlevel set (when run on command prompt), no Dr. Watson entry, no nothing.
It's an MFC app that does not really comprise anything very special. It does link in some external libraries – e.g., some old version of the Xerces C++ XML parser. But this is probably not too relevant, right?
The program has a class derived from CWinApp, and I tried to add some logging in its constructor. Based on this, it looks like not even this constructor is reached.
The server in question is running Windows Server 2003 Standard Edition Service Pack 2, and we are trying to run the program in a Remote Desktop session. (Because of the client's environment, I cannot easily test in a console session right now.)
I reverted my changes from version control, which did not help – but I do not know if I had built myself the previously installed version (which ran just fine even on this server) or if it had been built by someone else.
Have also tried to reinstall the Visual C++ runtime libraries and of course reboot Windows, but neither helped. Now I'm really running out of ideas... Any clues on what I could try or check?
Probably some error occurs but is surpressed e.g. empty catch() statement or similar.
You could try and install Debugging tools for Windows WinDbg to see if you could get more info when trying to run it. Since the download is rather small 25Mb maybe it is possible to install it on your client's PC.
But first check the eventview log for your app, maybe there is something in there that can shed some light.