我一直在使用C#創建一個類庫。而我已經註冊使用如何檢查tlb文件是否使用C++在註冊表中註冊?
regasm類庫..
RegAsm.exe Discovery.dll /tlb: Discovery.dll /codebase
現在我想知道大會是否登記不使用C++。我需要,因爲我必須檢查註冊表的這個DLL,如果它沒有註冊我必須註冊它 編程如果它是註冊然後我只是略過它。
所以我怎麼能知道組件是否註冊,或沒有使用C++ ...
我一直在使用C#創建一個類庫。而我已經註冊使用如何檢查tlb文件是否使用C++在註冊表中註冊?
regasm類庫..
RegAsm.exe Discovery.dll /tlb: Discovery.dll /codebase
現在我想知道大會是否登記不使用C++。我需要,因爲我必須檢查註冊表的這個DLL,如果它沒有註冊我必須註冊它 編程如果它是註冊然後我只是略過它。
所以我怎麼能知道組件是否註冊,或沒有使用C++ ...
爲什麼你需要打擾一切?如果它已經在那裏,再次註冊它並沒有什麼壞處。
通常情況下,庫UUID可以在HKEY_CLASSES_ROOT \ CLSID {GUID}在註冊表中找到。通過檢查該密鑰,您知道該dll是否已註冊。 RegGetKeyValue
可能會伎倆。
檢查下HKEY_CLASSES_ROOT註冊表:
使用RegOpenKeyEx
函數打開密鑰。如果鍵存在,該函數返回成功。
使用LoadRegTypeLib加載它,並檢查返回值的錯誤。例如:
HRESULT hr;
ITypeLib *libraryIntf;
hr = LoadRegTypeLib(IID_GuidOfTypeLibrary, LibraryVersionMajor,
LibraryVersionMinor, 0, &libraryIntf);
if(SUCCEEDED(hr))
{
libraryIntf->Release();
libraryIntf = NULL;
// Type library is registered and can be loaded.
}
else
{
// Type library is not registered.
}
如何以編程方式使用C++找到它任何想法? – Cute 2009-07-18 09:54:31