64 bit

Discussions related to Visual Prolog
augustinharrison
Posts: 19
Joined: 28 Jul 2010 1:28

64 bit

Unread post by augustinharrison » 15 Apr 2014 19:45

I have been attempting to compile my eks service to 64 bit.

it is the socket project combined with PIE combined with odbc with a difference engine I wrote.

after a troubling conversion when I run the 64exe I get the attached error... 0xc000007b
the message is attached.

I started with the socket because it was 7.4 but the id_TaskMenu gave me trouble as did the generated code from Taskwindow.pro


I have been on this since I bought 7.4!


thanks

AEH
Attachments
err.pan.png
err.pan.png (18.1 KiB) Viewed 3887 times
aeh

User avatar
Thomas Linder Puls
VIP Member
Posts: 1176
Joined: 28 Feb 2000 0:01

Unread post by Thomas Linder Puls » 15 Apr 2014 22:01

Do you get the same error if you create a new project and run that in 64 bit version?

Also notice that the Internet has many suggestions to the error C000007B.
Regards Thomas Linder Puls
PDC

Kari Rastas
Active Member
Posts: 31
Joined: 4 Mar 2000 0:01

Unread post by Kari Rastas » 16 Apr 2014 7:58

One of the needed DLL's being loaded when the program starts is a 32 bit version (probable the OBDC part in your case). That causes this 0xc000007b error.

augustinharrison
Posts: 19
Joined: 28 Jul 2010 1:28

64bit

Unread post by augustinharrison » 18 Apr 2014 21:14

thanks kari.

do you mean the program is loading a 32 bit dll which should be 64 bit or
that it should be loading a 32 bit dll ?


To answer Thomas,

I can build and execute a 64 bit new project without incident.

AEH
aeh

Kari Rastas
Active Member
Posts: 31
Joined: 4 Mar 2000 0:01

Unread post by Kari Rastas » 19 Apr 2014 12:16

With 64-bit exe the used dll's must be 64-bit versions.

I have not tried with projects using ODBC. I only tried with some own VIP projects. I have a pictures generating DLL, which I use in several projects. When I first tested a 64-project it had 32-bit version picture DLL linked to it. Result was this error 0xc000007b. After a while scratching my head, I made a 64-bit picture DLL and then the main project worked OK as a 64-version. I suppose that all used DLL's must be such 64-versions, both VIP and "foreign" based.

The second problem with my 64-bit tests came with external databases. VIP's own external databases, which by the way are a excellent tool, made with 32-bit projects do not work with 64-bit versions. It took a while to recollect how to make backups of external databases and rebuild them. :)

These 64-bit VIP exe:s and DLL:s work excellently with Windows 8. I have occasionally had a problem when suddenly the execution of the 64-bit VIP exe stops, if I start some other program (32-bit).

User avatar
Thomas Linder Puls
VIP Member
Posts: 1176
Joined: 28 Feb 2000 0:01

Unread post by Thomas Linder Puls » 20 Apr 2014 21:45

If you run a 32bit program the DLL's must also be 32bit and if you run a 64bit program the DLL's must also be 64bit. Unfortunately, there is no simple way to determine whether a program or DLL is 32bit or 64bit.

On a computer with a 64bit operating system, 32bit programs run in the WOW64 system (Windows 32 On Windows 64):
The operating system has 32bit doubles of all system DLL's in directories like C:\Windows\SysWOW64.

Having both a 32 and 64 bit system in one, works surprisingly good, but there are some places where there are some problems. ODBC is one of these (things have improved with Windows 8+). Recent Microsoft ODBC drivers have a 32+64 duplicity, and treat the duplicity seamlessly. But older drivers and drivers for other databases may need to be handled individually for each subsystem, running the 32bit version of the ODBC control panel to configure 32 bit drivers:
  • 64bit C:\Windows\System32\odbcad32.exe
  • 32bit C:\Windows\SysWOW64\odbcad32.exe
Regards Thomas Linder Puls
PDC

Post Reply