各位朋友多指教( DIRECTSHOW)

fxmgo 2003-09-15 12:34:28
我用 DSPack组件,c++Builder做视频捕获,不知道为什么,总是 编译连接时出现一错误: [Linker Error] Unresolved external '_PIN_CATEGORY_PREVIEW' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TESTCAP.OBJ
不知道为什么?我编译运行DSPack下的playcap例子正常. 请指教呀
...全文
50 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
真如实观 2004-03-02
  • 打赏
  • 举报
回复
直接使用SDK!用DSPack很麻烦,同时也影响性能。如以下代码可以播放AVI文件:
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl=NULL;
HRESULT hr=CoCreateInstance(CLSID_FilterGraph,NULL,
CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)&pGraph);
if(SUCCEEDED(hr))
{
hr=pGraph->RenderFile(L"c:\\clock.avi",NULL);
}
if(SUCCEEDED(hr))
{
hr=pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl);
hr=pControl->Run();
}
//注意在构造函数中加:CoInitialize(NULL);
//在折构函数中加:CoUninitialize();
//加头文件:#include <dshow.h>
//简单吧?
minona 2003-12-22
  • 打赏
  • 举报
回复
请问有人知道解决办法吗?救急啊!
minona 2003-12-20
  • 打赏
  • 举报
回复
请问搂主找到解决方法了吗?我也碰到了类似问题,正焦急呢。
yaosir 2003-11-27
  • 打赏
  • 举报
回复
link=true;
ghCapWnd = capCreateCaptureWindow( "Capture Window",
WS_CHILD|WS_VISIBLE|WS_EX_CLIENTEDGE|WS_EX_DLGMODALFRAME, 0, 0, 800, 600, Panel1->Handle, 0);
if(ghCapWnd)
{
if (!capDriverConnect (ghCapWnd, 0))
{
MessageBox(NULL, TEXT("连接图像卡失败"), TEXT("错误提示"), MB_OK);
}
else
{
capSetCallbackOnFrame(ghCapWnd,NULL);
capDriverConnect(ghCapWnd,0);
/*
capSetCallbackOnVideoStream(hWndC,NULL);
CapSetCallbackOnError(hWndC,NULL);
CapSetCallbackOnStatus(hWndC,NULL); //*/
//* CAPTUREPARMS CapParms;
CapParms.dwRequestMicroSecPerFrame=40000;
CapParms.fLimitEnabled = FALSE;
CapParms.fCaptureAudio = FALSE; // NO Audio
CapParms.fMCIControl = FALSE;
CapParms.fYield = TRUE;
CapParms.vKeyAbort = VK_ESCAPE;
CapParms.fAbortLeftMouse = FALSE;
CapParms.fAbortRightMouse = FALSE;
capCaptureSetSetup(ghCapWnd,&CapParms,sizeof(CAPTUREPARMS)); // */
CapParms.wNumVideoRequested=(CapParms.fUsingDOSMemory ? 32:1000);//API
capCaptureSetSetup(ghCapWnd,&CapParms,sizeof(CAPTUREPARMS));//API

capPreviewScale(ghCapWnd,1);
capPreviewRate(ghCapWnd,66);
capCaptureSequenceNoFile(ghCapWnd);
capOverlay(ghCapWnd, 1);
capPreview(ghCapWnd, 1);
Sleep(300);
capCaptureAbort(ghCapWnd);
Sleep(300);
capOverlay(ghCapWnd, 1);
}
}
我不懂电脑 2003-09-15
  • 打赏
  • 举报
回复
删掉*.obj,*.exe重新builder
fxmgo 2003-09-15
  • 打赏
  • 举报
回复
去掉以后,出现以下错误:
[Linker Error] Unresolved external 'AMGetErrorTextA' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\DSPACK_BCB6.LIB|E:\cbdshow\DSPACK231\src\DSPack\DSUtil.pas
[Linker Error] Unresolved external '_PIN_CATEGORY_PREVIEW' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TESTCAP.OBJ
[Linker Error] Unresolved external 'Direct3DCreate9' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\DIRECTX9_BCB6.LIB|E:\cbdshow\DSPACK231\src\DirectX9\Direct3D9.pas
[Linker Error] Unresolved external 'WMCreateWriterNetworkSink' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\LIB\DSPACK_BCB6.LIB|E:\cbdshow\DSPACK231\src\DSPack\DSPack.pas
weibz0525 2003-09-15
  • 打赏
  • 举报
回复
1.project->option->Linker,use dynamic RTL 对号去掉
2.project->Option->Packages, Build with Runtime Packages 对号去掉
IAMCDYY2003 2003-09-15
  • 打赏
  • 举报
回复
应该是LIB文件的关系,不太可能是什么越界
fxmgo 2003-09-15
  • 打赏
  • 举报
回复
哎!!!没人知道????
swites 2003-09-15
  • 打赏
  • 举报
回复
我觉得没那么简单,可能是越界或者是非正常操作引起.
zhpsam109 2003-09-15
  • 打赏
  • 举报
回复
把工程另寸到另外的地方,然后重新编译!
halibut 2003-09-15
  • 打赏
  • 举报
回复
把BCB的lib路径设为第一个试试!!!
zihan 2003-09-15
  • 打赏
  • 举报
回复
还有你用那个builder all试试,如果不行,,可能是你没有把相应的lib文件加到工程当中

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧