I'm Using Delphi Xe7 with Dbexpress in Windows 32 . After Deploy
The program runs on Windows 64. This problem appears
Unable to load dbxmss.dll (ErrorCode 193). It may be missing from the system Path.
But Does not appear in Windows 32
There are two files named dbxmss.dll located in the redist\win32 and redist\win64 subfolder of your XE7 installation. You have to deploy the one suited for your exe, depending you compiled a 32-bit application or a 64-bit application. It doesn't matter whether the target system is 64-bit or not (despite that you cannot run a 64-bit application on a 32-bit OS).
Related
I've installed XE4 on a 64bit Windows 7. All my design packages can be compiled/installed in 32bit configration. If I switch configuration to 64bit, the "Install" and "Uninstall" commands will disappear from context menu.
It is weird, can someone know the reason?
The Delphi IDE is a 32 bit app and so there are no 64 bit design time packages. Simply put, there is nothing into which a 64 bit design time package can be installed.
Of course, for run time packages, you can compile and use both 32 and 64 bit versions.
I recently upgraded from Delphi 2010 to Delphi XE4, but the paths to the source files on one application I am working on are not found by the compiler. I go to Tools-Project-Options and select the Platform as 64-bit Windows and add the paths to the source files to the Library path. I close the dialog and try to compile but the paths are not found. I reopen project options and find that it has reset itself to 32-bit windows.
What is causing the dialog to not set the paths and revert to 32-Bit Windows?
The some files are found, but some are not. The files that are not found are the 64-bit Abbrevia
files and the 32-bit Abbrevia files.
I have successfully created other 64-bit apps without this problem, so I an confused as to what is going on.
I am writing a Windows Service that needs to make a call to an Oracle Database. I have the target environment set for .Net 2.0 and x86 for the compiler. I referenced the Oracle.DataAccess.dll file on my 11.2.0 client for oracle. If i copy it into the GAC, it shows as x86 architecture.
Now, whenever i try to compile the service, I get an "Attempt to load a program with an incorrect format" error. It shows as being in the service's resx file as well as the ServiceInstaller resx file.
This happens regardless of if i target the x86 or x64 platform. Also regardless of setting the DLL to copy local or not. Any idea what is wrong?
ODP.NET is not fully managed, so it calls out to 32 bit unmanaged supporting DLLs (if you installed 32-bit ODAC) or to 64-bit unmanaged supporting DLLs (if you installed 64-bit ODAC).
So first, you need to get the target set correctly, then you need to make sure the right flavor of Oracle DLLs are being picked up.
In this case you chose x86 (32 bit) which means you also need to install 32-bit ODAC AND make sure that you aren't referencing the 64-bit Oracle dlls by mistake.
Christian Shay
Oracle
I recently got Visual Studio on a new computer, and to set up DirectX on it, I went to Tools>Options>Projects and Solutions>VC++ Directories and under Library Files made a new entry C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86
and now ran a test program (essentially just initialized DirectX) and it worked fine. However, if I change ...\Lib\x86 to ...\Lib\x64, than I get a linker error that Direct3DCreate9 is undefined:
1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9#4 referenced in function "void __cdecl init(void)" (?init##YAXXZ)
The x86 libraries are for 32-bit applications, and the x64 libraries are for 64-bit applications.
You can see which platform you are targetting in Visual Studio's Configuration Manager. Unless you have a good reason, you should be writing 32-bit applications, since 64-bit apps will require the 64-bit version of Windows to run.
The x64 folder contains the library files for the AMD64 platform (Windows 64 Bit). You need to compile your application for 64 bit, too. Also, you need the 64 bit version of Windows to run the produced executable.
Well the simple answer is that the x86 libraries are for 32 bit operating systems and the x64 libraries are for 64 bit operating systems.
Simply changing the DirectX library linked to will produce an error as you are (in all probability) trying to link your 32 bit code to the 64 bit library. You will need to compile your code to target 64 bit operating systems to get this to link successfully.
Has anyone succeeded to compile a Win32 GUI app with the command line dcc32.exe compiler, under 64-bit Windows Vista, without installing Delphi 2009? On our system it fails, with a message that the DFM files contain unknown 16-bit resources. This is usually an indication that the DFM files cannot be read. It works perfectly on all 32-bit Vista and Windows XPs, that we tried.
I am asking, because we want to ensure that we can rebuild our current exe files later, if needed, so even if we all switch to 64-bit OSes in the future, we want to be able to rebuild the old 2009 versions.
With Delphi 2009 you should use msbuild to commandline compile your projects (msbuild YourProject.dproj). Be sure to do this from the RAD Studio commandprompt. This ensures some environment variables are set. Does this solve your problem?
Adding lnkdfm120.dll solved the problem.
Yes, we are performing console builds via dcc32 through nant in both Vista 64-bit and Windows 2008 64-bit. You may have to deal with some path issues the (X86) if you installed to the default location (we do not to remove these types of dependencies).