我必须构建一个COM库(DLL)的OEM版本。 有没有人知道一个工具(ressource hacker)可能会在构建时间之后替换我的一些界面guid?
我只是想构建并测试一个DLL并在之后生成OEM版本。
答案 0 :(得分:1)
我不知道的工具。您可以使用自动构建过程来实际构建具有不同GUID的dll#。
答案 1 :(得分:0)
替换已编译二进制文件中的接口ID并不容易。它们通常是硬编码的,编译器会将它们分配到静态存储中,它们甚至可能具有静态链接,因此您在查找它们时会遇到问题。还记得QueryInterface()
通常是如何实施的吗?
HRESULT CImpl::QueryInterface( IID& iid, void** result )
{
if( iid == __uuidof( IInterfaceThisClassImplements1 ) ) {
*result = static_cast<IInterfaceThisClassImplements1*>( this );
} else {
///same stuff for other interfaces
}
//call AddRef() if succeeded
}
它不仅限于资源编辑,您必须实际修补二进制图像的静态数据,并且可能没有工具可以自动为您执行此操作。
由于您拥有完整的资源,您最好的选择就是重建二进制文件。