Oct 12, 2009 at 7:38 PM
Edited Oct 12, 2009 at 7:42 PM
I noticed this thread is over a year old, but I am trying to compile from source for Windows 7 x64 and not having a great amount of luck. Bear with me, i'm only a web developer and scripter and don't have a lot of experience in C(++/#) coding but I can recognize
syntax and have a very basic understanding of pointers and methods and whatnot.
I have compiled things in Visual Studio before, although this is the first time I've tried to compile for a 64-bit machine. The last post by juraj seems to cover everything, I have also read articles on 64-bit porting such as the CodeProject C++ 64-bit article
here however I encounter errors when trying to register the RegNameSpace DLL.
I am running Visual Studio 2008 with the Windows SDK v7.0 (for Windows 7 x64) integrated. That may be part of the issue. Anywho, in reference to the guide I mentioned above, I have did not find any issues with pointer length and 32>64-bit compatibility
(via a recursive Find Text In Files command in UltraEdit) apart from that single size_t variable, so I'm sure it's the architecture setting that I can't figure out. If I simply change my Configuration by copying the Win32 to x64 architecture as outlined on
this MSDN article I get the same 'This DLL is not for 64-bit architecture' message or whatever it is when trying to register it. Fair enough, I take it that changing the "processorArchitecture
attribute" is more than that. So taking that code you posted juraj and inserting it after (and I tried before) the #pragma once line in stdpch.h under the RegLib project, seems to build a correct x64 DLL. However, I get this error in Event Log:
Activation context generation failed for "S:\Storage\Software - Windows 7\Registry Shell Namespace Extension\RegNamespace_x64\RegNamespace\x64\Release\RegNamespace.dll".
Error in manifest or policy file "" on line .
A component version required by the application conflicts with another component version already active. Conflicting components are:.
Component 1: C:\Windows\WinSxS\manifests\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_fa645303170382f6.manifest.
Component 2: C:\Windows\WinSxS\manifests\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc.manifest.
I understand that it's basically conflicting between the 32-bit and 64-bit comctl32.dll but I have no idea how to resolve it =( My not-so-educated guess is that these "preprocessor pragmas" should be put somewhere else instead...? If someone
could give me a tip or has any ideas, I'd be very grateful - I have missed using this extension since moving from Vista 32-bit to 7 64-bit very much. I have subscribed to this thread via E-Mail and look forward to replies.
Thank you for the great explorer extension you've created.