我必須構建COM庫(DLL)的OEM版本。 有沒有人知道一個工具(資源黑客),它可能會取代我的一些界面GUID後建立時間?更改COM DLL的接口GUID(資源補丁)
我只想構建和測試一個DLL,然後生成OEM版本。
我必須構建COM庫(DLL)的OEM版本。 有沒有人知道一個工具(資源黑客),它可能會取代我的一些界面GUID後建立時間?更改COM DLL的接口GUID(資源補丁)
我只想構建和測試一個DLL,然後生成OEM版本。
沒有我知道的工具。您可以使用自動構建過程來實際構建具有不同GUID的dll#。
在編譯好的二進制文件中替換接口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
}
它不侷限於資源的編輯,你必須真正打補丁的二值圖像的靜態數據,並沒有可能工具將能夠自動爲您做到這一點。
既然你有完整的來源,你最好的選擇就是重建二進制文件。
這就是我們目前所做的。 但是,通過這個我們必須建立和測試每個OEM版本 - 而不是一個! – ndee