能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
[下载] AheadLib修改 支持x64支持类/命名空间
最近用这个发现几个问题: 1、类缺省的构造函数没办法处理,像下面这样的 public: void CATSysSwappableHdl::`default constructor closure'(void) public ??_FCATSysSwappableHdl@@QEAAXXZ ??_FCATSysSwappableHdl@@QEAAXXZ proc near xor r8d, r8d
xor edx, edx jmp ??0CATSysSwappableHdl@@IEAA@PEAVCATSysSwappable@@PEAVCATSysSwapFile@@@Z ; 2、有些类变量可能处理不对 3、编译成功,但是没法运行 倒是将所有的函数和变量都转发倒是可以,不用重新构建类 //函数 #pragma comment(linker, "/EXPORT:??_FCATSysSwappableHdl@@QEAAXXZ=CATSysAllocatorO.??_FCATSysSwappableHdl@@QEAAXXZ,@25")
//变量 #pragma comment(linker, "/EXPORT:??_7CATSysSwappable@@6B@=CATSysAllocatorO.??_7CATSysSwappable@@6B@,@22")
对于函数的处理,个人还是建议按照原版的jmp RAX方式,用intel C++编译器编译,那个用obj链接的函数带返回值的很多都有问题。 // ALCDECL AheadLib__FCATSysSwappableHdl__QEAAXXZ(void) { GetAddress("??_FCATSysSwappableHdl@@QEAAXXZ"); __asm JMP RAX; }
上面的这个是x64 Catia V5R2x的DLL:CATSysAllocator.dll,只能通过转发函数和变量可行,其他怎么弄都不成功。
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|
能力值:
( LV2,RANK:10 )
|
-
-
|