1108 VC DIRECTXSDK LNK1103
Linking…
Creating library Debug/xxx.lib and object Debug/xxx.exp
uuid.lib(comcat.obj) : fatal error LNK1103: debugging information corrupt; recompile module
Error executing link.exe.
出现环境 xp sp2 + 最新 sdk + vc6 +vc7
出现此错误 位 vc6 下编译,问题出来 lib 和 link.exe 版本不合
查看 lib 设置,将 sdk 移动到最后,
编译通过。
看来 xp 的 sdk 已经默认的向 vc.net 靠拢了
Linking…
Creating library Debug/xxx.lib and object Debug/xxx.exp
uuid.lib(comcat.obj) : fatal error LNK1103: debugging information corrupt; recompile module
Error executing link.exe.
xp sp2 + 最新 sdk + vc6
后来在directory里面,把新安装的sdk的lib路径放到最后面就好了
/////////////////////////////////////////////////
// ds_enum cap name
void ds_enumcapname()
&leftsign;
// com initialize
CoInitialize(NULL);
ICreateDevEnum *pCreateDevEnum;
long hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
IID_ICreateDevEnum, (void**)&pCreateDevEnum);
if(hr != NOERROR) &leftsign;
AfxMessageBox(TEXT("Error Creating Device Enumerator"));
return;
&rightsign;
IEnumMoniker *pEm;
hr = pCreateDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory,
&pEm, 0);
if(hr != NOERROR) &leftsign;
AfxMessageBox(TEXT("Sorry, you have no video capture hardware"));
return;
&rightsign;
pEm->Reset();
ULONG cFetched;
IMoniker *pM;
int uIndex=0;
CString s;
while(hr = pEm->Next(1, &pM, &cFetched), hr==S_OK) &leftsign;
IPropertyBag *pBag;
hr = pM->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
if(SUCCEEDED(hr)) &leftsign;
VARIANT var;
var.vt = VT_BSTR;
hr = pBag->Read(L"FriendlyName", &var, NULL);
if(hr == NOERROR) &leftsign;
s.Format("%d. %s", uIndex, _com_util::ConvertBSTRToString(var.bstrVal));
AfxMessageBox(s);
SysFreeString(var.bstrVal);
pM->AddRef();
&rightsign;
pBag->Release();
&rightsign;
pM->Release();
uIndex++;
&rightsign;
pEm->Release();
// com uninitialize
CoUninitialize();
&rightsign;
/////////////////////////////////////////////////
//
void ds_enumaudioname()
&leftsign;
// com initialize
CoInitialize(NULL);
ICreateDevEnum *pCreateDevEnum;
long hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
IID_ICreateDevEnum, (void**)&pCreateDevEnum);
if(hr != NOERROR) &leftsign;
AfxMessageBox(TEXT("Error Creating Device Enumerator"));
return;
&rightsign;
IEnumMoniker *pEm;
hr = pCreateDevEnum->CreateClassEnumerator(CLSID_AudioInputDeviceCategory,
&pEm, 0);
pCreateDevEnum->Release();
if(hr != NOERROR)
return;
ULONG cFetched;
IMoniker *pM;
pEm->Reset();
int uIndex=0;
CString s;
while(hr = pEm->Next(1, &pM, &cFetched), hr==S_OK) &leftsign;
IPropertyBag *pBag;
hr = pM->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pBag);
if(SUCCEEDED(hr)) &leftsign;
VARIANT var;
var.vt = VT_BSTR;
hr = pBag->Read(L"FriendlyName", &var, NULL);
if(hr == NOERROR) &leftsign;
s.Format("%d. %s", uIndex, _com_util::ConvertBSTRToString(var.bstrVal));
AfxMessageBox(s);
SysFreeString(var.bstrVal);
pM->AddRef();
&rightsign;
pBag->Release();
&rightsign;
pM->Release();
uIndex++;
&rightsign;
pEm->Release();
// com uninitialize
CoUninitialize();
&rightsign;
相關附件: (共 849 位元組)
在 VFW 中, 利用 capGetDriverDescription 取得的是一種 driver 的設備名稱, 往往讓人看不出來是什麼設備, 要如何才能取得更正確的設備名稱, 如在控制台中看到的設備名稱呢? 其實可以透過 DirectShow 來取得這些設備的 FriendlyName , 如此一來, 能更方便地取得這些資訊.
由於是 com base 的程式, 所以專案若是 unicode 時, BSTR 是不需要轉換的, 否則需要利用 comdef.h 中的 _com_util::ConvertBSTRToString 來轉型為 char *
以下函數必須 include 三個 header file
#include "strmif.h"
#include "uuids.h"
#include "comdef.h"
link 也要加入 strmiids.lib 才能順利進行.
程式碼如下,
timuser
威望: +3
級別: 風雲使者
魅力:
經驗:
財產: 23071 雷傲元
來自: 九藜大地
總發表量: 615 篇
註冊日期: 2002/11/18
历史博文
- 20080817 wpf bsod - 2009
- 20070715 Orz 行为艺术家 苏玄明 - 2008
- 0206 SIP linux 编译 libexosip JOSUA - 2006
- DBX2EML升级记录+DBX修复最终解决方法 - 2005
- Blog升级记录 - 2005