纯C++编写com组件网上的例子蛮多大家可以自选搜索,
写出来的com可以注册成功VC调用也没问题,但是用vb.net去调用时引用却不行会有以下错误
这是因为没有把TypeLib写入注册表,添加以下写注册表代码就可以了
HRESULT RegisterTypeLibServer(const CLSID& clsid, const TCHAR *szVersion, const TCHAR *szLibraryName, const TCHAR *szTlbPath)
{
TCHAR szCLSID[MAX_PATH];
WCHAR *lpwszClsid;
StringFromCLSID(clsid, &lpwszClsid);
wsprintf(szCLSID, "%S", lpwszClsid);
TCHAR szKey[MAX_PATH];
wsprintf(szKey, "TypeLib\\%s", szCLSID);
HelperWriteKey(HKEY_CLASSES_ROOT, szKey,
NULL, REG_SZ, (void*)NULL, 0);
//1.0
wsprintf(szKey, "TypeLib\\%s\\%s", szCLSID, szVersion);
HelperWriteKey(HKEY_CLASSES_ROOT, szKey,
NULL, REG_SZ, (void*)szLibraryName, lstrlen(szLibraryName));
TCHAR szSubKey[MAX_PATH];
memset(szSubKey, 0, MAX_PATH);
lstrcpy(szSubKey, szKey);
lstrcat(szSu