Here are my initial results:
I took the pproctx.clfile and setup the environment to compile a 32-bit dll.
Ran "cl @pproctx.clfile" and it produced the file as expected, however, I got
the following warnings:
C:\PProCtx>cl @pproctx.clfile
Ctxmenu.cpp
Shellext.cpp
Shexinit.cpp
Generating Code...
shellext.def(4) : warning LNK4017: DESCRIPTION statement not supported for the t
arget platform; ignored
shellext.def : warning LNK4222: exported symbol 'DllCanUnloadNow' should not be
assigned an ordinal
shellext.def : warning LNK4222: exported symbol 'DllGetClassObject' should not b
e assigned an ordinal
Creating library pproctx.lib and object pproctx.exp
However, when powerpro.exe is started with context menu support it works on the
32-bit platform.
I then reset the environment to compile a 64-bit dll. I run the same compiler
command and it fails with the following errors:
C:\PProCtx>cl @pproctx.clfile
Ctxmenu.cpp
Ctxmenu.cpp(70) : warning C4244: '=' : conversion from 'LRESULT' to 'UINT', poss
ible loss of data
Ctxmenu.cpp(241) : warning C4267: '+=' : conversion from 'size_t' to 'int', poss
ible loss of data
Ctxmenu.cpp(252) : warning C4267: 'initializing' : conversion from 'size_t' to '
int', possible loss of data
Ctxmenu.cpp(264) : warning C4244: '=' : conversion from 'LRESULT' to 'UINT', pos
sible loss of data
Shellext.cpp
Shellext.cpp(131) : error C2259: 'CShellExt' : cannot instantiate abstract class
due to following members:
'HRESULT IContextMenu::GetCommandString(UINT_PTR,UINT,UINT *,LPSTR,UINT)
' : is abstract
C:\Program Files\Microsoft SDKs\Windows\v6.1\include\shobjidl.h(1978) :
see declaration of 'IContextMenu::GetCommandString'
Shexinit.cpp
Generating Code...
Doing some research on the internet turns up
http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/d6144eaa-fa37-4133-87a0-75a06633209b
which seems to be my problem. I then modify my C:\Program Files\Microsoft
SDKs\Windows\v6.1\include\shobjidl.h file and recompile. Now it compiles with
the following output:
C:\PProCtx>cl @pproctx.clfile
Ctxmenu.cpp
Ctxmenu.cpp(70) : warning C4244: '=' : conversion from 'LRESULT' to 'UINT', poss
ible loss of data
Ctxmenu.cpp(241) : warning C4267: '+=' : conversion from 'size_t' to 'int', poss
ible loss of data
Ctxmenu.cpp(252) : warning C4267: 'initializing' : conversion from 'size_t' to '
int', possible loss of data
Ctxmenu.cpp(264) : warning C4244: '=' : conversion from 'LRESULT' to 'UINT', pos
sible loss of data
Shellext.cpp
Shexinit.cpp
Generating Code...
shellext.def(4) : warning LNK4017: DESCRIPTION statement not supported for the t
arget platform; ignored
shellext.def : warning LNK4222: exported symbol 'DllCanUnloadNow' should not be
assigned an ordinal
shellext.def : warning LNK4222: exported symbol 'DllGetClassObject' should not b
e assigned an ordinal
Creating library pproctx.lib and object pproctx.exp
The pproctx.dll file is created and I transfer it to my 64-bit machine and
restart powerpro. Unfortunately it does not seem to work.
On the 32-bit machine I run the listdlls.exe command and see that pproctx.dll
is loaded by explorer.exe. I also see it creates the ctx_debug.txt file. On the
64-bit platform though pproctx.dll is not even loaded.
Any ideas on where to go from here? Any chance the warnings in the 64-bit
compile would prevent it from even loading?
--- In [email protected], "brucexs" <bswit...@...> wrote:
>
> . Note, however, that when I download powerpro from
> http://powerpro.webeddie.com/download/pwrpro49.zip I get version 4.9j and not
> 4.9k that you list. Can you double check what version I need to use and where
> to get it.
> >
>
> The pproconf.pcf is still at 4.9j; but if you ctrl-right click a bar and
> select about PowerPro, it should say 4.9k
>