-1

I have one executable. Exe is prepared from Delphi version 5 as code is written in Delphi. This exe working successfully on Windows XP, Windows 7 with 32 bit operating system. But same executable not working on Windows 7 with 64 bit operating system. It will throw following error code Exception code: 0xc0000005.

The only option is to re compile the Delphi code and make it compatible to Windows 7 64 bit operating system. I have Google but do not find any suitable article. Therefore, can someone please help me out to resolve this issue.

I have good idea to make executable compatible for 32 and 64 bit but only in .NET Framework. So Please help me.

Sertac Akyuz
  • 54,131
  • 4
  • 102
  • 169
Shalabh
  • 19
  • 1
  • 5
  • Did you actually read the fine print on that page you advised your user to download software from? I think they did, and therefore politely declined to follow this "advice"... – fvu Dec 10 '13 at 18:39
  • Any site that claims to have a one size fits all solution to a specific NTSTATUS error is supplying malware. Do not ever visit such a site, let alone follow their advice and download anything. – David Heffernan Dec 10 '13 at 18:54
  • Putting it another way, it is doing something that requires elevation of privilege. The reason it works in your 32-bits Windows is probably not because of the fact it is 32-bits, but because it has UAC disabled. Try it again right-clicking the .exe and "Run as Administrator". – Havenard Dec 10 '13 at 18:56
  • I have already tried this to run exe as Administrator but it not worked for me. – Shalabh Dec 10 '13 at 18:58
  • No, it is not a malware. https://www.virustotal.com/file/00e3de77566658695f48f87b4bb42b4e180b31b71f2d4b160b7abc8e9b0c40e1/analysis/1386675764/ – Free Consulting Dec 10 '13 at 19:08
  • It's malware in my book. Snake oil. – David Heffernan Dec 10 '13 at 19:29
  • You need a new book then. That download might actually help a OP if not to resolve his cryptic issue, but at least to develop a minimal understanding and thus to focus on specific problems. – Free Consulting Dec 10 '13 at 19:39
  • 5
    @FreeConsulting, David's right here. Try going to the link `http://www.wiki-errors.com/wiki-errors.php?wiki=myerror`, replacing `myerror` with anything you want. It's just boilerplate text that claims to have one software that will fix any error you search for. – Marcus Adams Dec 10 '13 at 19:44
  • Makes me wonder why that link is still there, if described fake/spam behaviour is really true. – Free Consulting Dec 10 '13 at 19:54
  • @Free You should download it and run it to see what it is ..... – David Heffernan Dec 10 '13 at 20:24
  • 2
    @DavidHeffernan, after you, sir *bows* – Free Consulting Dec 10 '13 at 21:30

1 Answers1

4

That error code is the NTSTATUS code for an access violation. For you to see that error code typically means that your application has raised an access violation during initialization. Once the Delphi RTL has initialized then those errors are converted into native Delphi EAccessViolation errors. So with high probability this is an error during initialization, possibly related to the way you link to or use a dependent module.

In order to solve the problem you need to do some debugging. The first thing I would do is to use Dependency Walker in profile mode to run your application. This will give you diagnostics of the load of your process at some point, presumably during the load an initialization of a module, you will see an error. Hopefully this will lead you to a solution.

Programs built with Delphi 5 do run on 64 bit Windows. You have an error in your program that needs debugging. Simple as that. Not the easiest error to debug, but it's still just a debugging exercise with your code.

David Heffernan
  • 601,492
  • 42
  • 1,072
  • 1,490
  • If I have an error in my program then why it is running successfully on Windows XP and Windows & 32 bit OS. Please clear this as I do not have enough knowledge about Delphi. And What is NTSTATUS code ? – Shalabh Dec 10 '13 at 18:54
  • 3
    You have a bug in your program that only manifests on certain systems. NTSTATUS error codes are those raised by the NT layer. That's as opposed to those raised by the Win32 layer. Once the Delphi RTL has initialized such an error is translated into a native Delphi exception. Most likely there's an issue initializing one of your dependencies. My advice, please listen carefully: stop looking for a quick fix. The solution involves debugging your specific program. Only you can do it. – David Heffernan Dec 10 '13 at 18:57
  • ok I will follow your suggestion to debug the code thoroughly. I hope this will take me to the exact cause of original issue and increase my debugging skill too. But can you please explain how make any exe compatible to windows 7 64 bit OS. I have done this for .NET applications but never for Delphi. – Shalabh Dec 10 '13 at 19:01
  • 3
    A Delphi 5 executable already is compatible with x64 Windows. 64 bit Windows runs 32 bit applications. You've got a bug, you need to find it. Start with Dependency Walker. Another option is to strip out parts of your app until you strip out something and then it runs. You could install D5 on the x64 machine but I suspect the problem arises before the debugger would be able to help you. – David Heffernan Dec 10 '13 at 19:03
  • Actually I have not used Dependency Walker even I do not know how to use it. I am reading complete article about it and after initial reading I can said this will really help me out. – Shalabh Dec 10 '13 at 19:13
  • Load you executable, open the profile menu and click on start or similar. – David Heffernan Dec 10 '13 at 19:15