1

I have a Outlook plug-in which is compatible with 32-bit versions of Outlook (2003, 2007 and 2010). But when installed on a 64-bit Outlook 2010, it goes into the inactive add-ins list and is disabled. So I am trying to build the same plug-in as a 64-bit application so that it works with the 64-bit version of Outlook 2010. But when I try to compile it in 64-bit configuration, I get this error -

fatal error C1905: Front end and back end not compatible (must target same processor).

Can anyone tell me what I must do to compile it successfully?

I am using Visual Studio 2005 Pro on a 64-bit Windows XP OS.


OK. I replaced the x86 compatible lib with a x64 one and now fatal error C1905 has disappeared. But another problem with compiling 64 bit code has popped up. I am getting warnings now suggesting that the functions I had exported to perform custom actions are not found in the dll. Here is the warning message -

WARNING: Entry point 'function name' not found in module 'output dll path' for custom action 'action name'.

There are four such warnings. I am clueless since the same setting worked fine with the 32 bit configuration.

So now build is successful, but the installation still fails. :(

Please help... thanks in advance.

MPelletier
  • 16,256
  • 15
  • 86
  • 137
piyush
  • 11
  • 4

1 Answers1

1

It may be because your path to linked libraries includes x86 libraries instead of x64. Maybe this can help: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/c19aea98-9b30-4aaa-b417-596eccb05066/

Jakob Christensen
  • 14,826
  • 2
  • 51
  • 81
  • I've visited that link before but it didn't help. I agree that some of the linked libraries might be x86, but how do i find out which one is it? I have mapi32.lib, crypt32.lib, htmlhelp.lib and version.lib in the linker->input section – piyush Jul 07 '11 at 14:07
  • @piyush: Mapi32 and crypt32 are most likely 32-bit (hence the "32" in the file names). – Jakob Christensen Jul 07 '11 at 14:59
  • Ok, I changed my code for explicitly linking to 64-bit version of mapi32.dll. Also I found out that crypt32.lib is not necessary since there is a third party lib (cryptlib.lib) being used for encryption/decryption. Now I have removed crypt32.lib from the project. How do I find out if this cryptlib.lib is a 64 bit lib or not? – piyush Jul 08 '11 at 05:50
  • Good question. Maybe you can use this: http://stackoverflow.com/questions/480696/how-to-find-if-native-dll-is-compiled-as-x64-or-x86 – Jakob Christensen Jul 08 '11 at 07:50
  • That library was a 32-bit one. I had to download a newer version which supports 64-bit environments. Now that error is gone, but there are still a few linker errors saying some symbols are already defined. Hope i can solve them myself :) – piyush Jul 11 '11 at 05:59