我想给我的软件加上Office 2007或2010的皮肤
想到AppFace、BCGControlBar、Xtreme ToolkitPro这三款软件
DirectUI、SkinMagic、SkinSE里没有我要的皮肤,而且我不想自己做……
AppFace不是注册版,用起来全是[Skinned by appface.com]
我破解了SkinMagic和SkinSE,但这个我怎么也搞不定,网上也难找
BCGControlBar、Xtreme ToolkitPro更麻烦
虽然也是未注册版,可是我用都用不起
以下是代码
.686p
.model flat,stdcall
option casemap:none
include Windows.inc
include Kernel32.inc
include User32.inc
include Strings.mac
includelib Kernel32.lib
includelib User32.lib
includelib BCGCBPRO1700Eval60.lib
BCGCBProSetResourceHandle PROTO :DWORD
.code
Start:
invoke LoadLibrary,$CTA0('BCGPStyle2010Blue170.dll')
invoke BCGCBProSetResourceHandle,eax
invoke MessageBox,0,0,0,0
invoke ExitProcess,0
end Start
不知道是不是这么用的,那英文的说明我只看懂了一半
然后是Xtreme ToolkitPro的
.686p
.model flat,stdcall
option casemap:none
include Windows.inc
include Kernel32.inc
include User32.inc
include Strings.mac
includelib Kernel32.lib
includelib User32.lib
includelib ToolkitPro.lib
SetApplyOptions PROTO :DWORD,:DWORD
.code
Start:
invoke SetApplyOptions,$CTA0('Office2007.cjstyles'),0
invoke MessageBox,0,0,0,0
invoke ExitProcess,0
end Start
以上两个编译的时候说找不到BCGCBProSetResourceHandle、SetApplyOptions两个导出函数
我在BCGCBPRO1700Eval60.lib、ToolkitPro.lib里分明找到了这俩函数并且说明上也说过这两个函数,可是编译的时候就是不行:
Assembling: XtremeToolkitPro.Asm
Linking: XtremeToolkitPro.Obj
XtremeToolkitPro.Obj : error LNK2001: unresolved external symbol _SetApplyOption
s@8
XtremeToolkitPro.exe : fatal error LNK1120: 1 unresolved externals
------解决方案--------------------------------------------------------
按你所说,是不应该有这个错误。可以先用 dumpbin /EXPORTS ToolkitPro.lib 查看下其导出函数的内部名称,是否和错误提示的一致。或者,将涉及到的文件都上传来看看?
------解决方案--------------------------------------------------------
1 确定函数在lib中
2 确定你的函数proto正确
------解决方案--------------------------------------------------------
问题解决了,用dumpbin /EXPORTS ToolkitPro.lib发现它的输出函数就是前面有一堆乱七八糟的字符,汇编里用LoadLibrary加载DLL,再用GetProcAddress获取地址就行,用GetProcAddress时输入的函数名也要和dumpbin出来的结果一样,前面要有那一堆乱七八糟,就行了。