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

历史博文

标签:, ,
四月 12, 2007 at 5:33 下午 by yippee 1,021 次
Category: Info
Tags: , ,