小编Rom*_* R.的帖子

Regsvr32奇怪的行为=> Regsvr32没有给出任何成功或失败的消息

我有一个directShow过滤器:MyFilter.ax

当我尝试使用Regsvr32实用程序注册MyFilter.ax时,它不会出现任何错误或任何消息(成功或失败).但是过滤器未注册.

Regsvr32实用程序适用于我的其他过滤器.

为什么Regsvr32 deoes不给出任何成功或失败的消息?如何调试我的Regsvr32故障成功?用于注册directshow过滤器的任何替代实用程序可能会给出有意义的消息?

最好的祝愿

更新:

我在虚拟机上安装了干净的win7操作系统.然后再次尝试register.Fail而没有来自regsvr32的消息响应.

但是再在虚拟机上安装一个干净的win7操作系统.然后进行所有更新.在我进行更新后,regsvr32工作并安装我的过滤器....我不知道是什么原因导致regsvr32失败以及什么样的更新修复它.或者它真的是一个更新问题......

com regsvr32 directshow comobject

6
推荐指数
1
解决办法
4702
查看次数

在vc ++中将'System :: String ^'转换为'const char*'

如何在vc ++中将'System :: String ^'转换为'const char*'?

我的代码:

String ^Result1= "C:/Users/Dev/Desktop/imag.jpg";

IplImage *img1 = cvLoadImage(Result1, 1);

如果我喜欢上面它会产生以下错误.

error C2664: 'cvLoadImage' : cannot convert parameter 1 from 'System::String ^' to 'const char *'

请帮我.

string c++-cli char visual-c++

6
推荐指数
2
解决办法
2万
查看次数

为什么Windows只允许一个应用程序访问网络摄像头?

我一直在尝试用c#制作一个示例网络摄像头应用程序,我发现应用程序无法在Skype或Oovoo或任何其他应用程序运行的同时运行?(反之亦然)为什么应用程序会在网络上获得独占锁定

c# windows video webcam winapi

6
推荐指数
1
解决办法
2230
查看次数

使用ffmpeg libav和libx264从图像创建视频?

我正在尝试使用ffmpeg库从图像创建视频.图像的大小为1920x1080,应该使用.mkv容器用H.264编码.我遇到了各种各样的问题,以为我越来越接近解决方案了,但是这个我真的被困在了.使用我使用的设置,我的视频中的前X帧(大约40帧,取决于我用于视频的图像数量)不会被编码.avcodec_encode_video2不会返回任何错误(返回值为0),其中got_picture_ptr = 0.结果是视频实际上看起来像预期的那样,但是前几秒是奇怪的跳跃.

这就是我创建视频文件的方式:

// m_codecContext is an instance variable of type AVCodecContext *
// m_formatCtx is an instance variable of type AVFormatContext *

// outputFileName is a valid filename ending with .mkv
AVOutputFormat *oformat = av_guess_format(NULL, outputFileName, NULL);
if (oformat == NULL)
{
    oformat = av_guess_format("mpeg", NULL, NULL);
}

// oformat->video_codec is AV_CODEC_ID_H264
AVCodec *codec = avcodec_find_encoder(oformat->video_codec);

m_codecContext = avcodec_alloc_context3(codec);
m_codecContext->codec_id = oformat->video_codec;
m_codecContext->codec_type = AVMEDIA_TYPE_VIDEO;
m_codecContext->gop_size = 30;
m_codecContext->bit_rate = width * height * 4
m_codecContext->width = width; …
Run Code Online (Sandbox Code Playgroud)

ffmpeg video-encoding h.264 libav libx264

6
推荐指数
1
解决办法
9757
查看次数

使用VBA的Late Binding和WithEvents

我有一个要求,我认为我有一个解决方案,但我会很感激输入,以防我错过了什么或让自己失败了.

要求

在新库(使用C#)中实现一些新的业务逻辑,通过事件报告其状态.该库将从现有的VBA解决方案中调用(但不能改变它).该库通过COM Interop暴露给VBA - 这里没有问题.

除了这个新库公开的"基础"功能之外,我还需要允许基本功能被"自定义"功能取代.

基本和自定义功能都将实现相同的接口,但由于各种原因,每个接口的内部私有方法都会有所不同.

在VBA中

我需要能够调用基本库或自定义库(以及将来实现相同接口的其他自定义库).如果不是要求响应并显示来自库的消息,我可以使用Late Binding在运行时实例化对象.但是,由于我需要响应库引发的事件,因此WithEvents在VBA中声明变量时需要使用关键字.

如果我只需要支持基础库,我可以执行以下操作:

Private WithEvents Processor As MyDefault.RuleEngine

Public Sub Execute(StartDate As Date, EndDate As Date, SomeOtherParms As String)
Set Processor = New MyDefault.RuleEngine
Processor.Execute StartDate, EndDate, SomeOtherParms
End Sub

Private Sub Processor_OnProgressUpdate(ByVal percentComplete As Double)

'Show the progress on the UI to the user

End Sub
Run Code Online (Sandbox Code Playgroud)

由于我要支持这个库的定制实现(其中有一些关于我现在知道了,别人说我还不知道),我会用后期绑定来处理这种情况.

但是,WithEvents不能与Late Binding一起使用,尽管我可能偶然发现了一种解决方法.

在我的场景中,我将始终引用基础实现.它只能在特定的配置环境下,其中基本功能将被自定义实现替换.

由于基本和自定义库共享相同的接口,因此我在概念验证中使用以下代码:

Private WithEvents Processor As MyDefault.RuleEngine

Public Sub Execute(StartDate As Date, EndDate …
Run Code Online (Sandbox Code Playgroud)

c# com vba interop

6
推荐指数
1
解决办法
643
查看次数

在NTFS卷上快速查找一组文件名,最好通过其MFT

我正在编写一个工具,可以找到适用于Mac和Windows的iTunes资料库的丢失文件.在Mac上,我可以通过使用精彩的"CatalogSearch"功能命名来快速查找文件.

但是,在Windows上,似乎没有用于按文件名搜索的OS API(或者是否存在?).

经过一些谷歌搜索,我了解到有一些工具(如TFind,Everything)直接读取NTFS目录并扫描它以按名称查找文件.

我想做同样的事情,但不必从头开始(虽然我过去写了很多磁盘工具,但我从来没有精力去挖掘NTFS).

我想知道是否有现成的库,可能是.dll,它会给我这个搜索功能:传入一个文件名,回到它的路径.

或者,Windows索引服务怎么样?至少当我在最近安装的XP Home系统上尝试此操作时," 开始"菜单下的" 搜索"操作实际上会扫描所有目录,这表明它没有完整的数据库.由于我根本不是Windows用户,我想知道为什么这不起作用.

最后,我需要的完整解决方案是:我有一个要查找的文件名列表,我需要搜索整个磁盘的代码(或者使用数据库)来一次性获取所有结果.例如,搜索不应该为我正在查找的每个文件启动新的完整扫描.这就是为什么我认为MFT方式是最优的,因为它可以快速迭代所有名称,将每个名称与我的列表进行比较.

windows filesystems ntfs ntfs-mft

5
推荐指数
1
解决办法
2663
查看次数

DirectShow:网络摄像头预览和图像捕获

在查看一个非常相似的问题并看到几乎相同的代码后,我决定分别提出这个问题.我想在DirectShow使用的默认窗口中显示网络摄像头视频流的视频预览,并且我还希望能够在任何给定时刻"拍摄"视频流.

我从MSDN上的DirectShow示例以及AMCap示例代码开始,并且我认为应该预览部分,但不是.我没有找到从视频流中抓取图像的例子,除了使用SampleGrabber,它已被弃用,因此我试图不使用它.

下面是我的代码,换行.请注意,EnumerateCameras中的大多数代码都已注释掉.该代码将用于附加到另一个窗口,我不想这样做.在MSDN文档中,它明确指出VMR_7创建自己的窗口来显示视频流.我的应用程序中没有错误,但此窗口永远不会出现.

我的问题是:我做错了什么?或者,如果您知道我想要做的一个简单示例,请将我链接到它.AMCap不是一个简单的例子,仅供参考.

注意:InitalizeVMR用于在无窗口状态下运行,这是我的最终目标(集成到DirectX游戏中).但是现在,我只想让它以最简单的方式运行.

编辑:此问题的第一部分,即预览相机流,已解决.我现在只是在寻找已弃用的SampleGrabber类的替代品,以便我可以随时拍摄照片并将其保存到文件中.

编辑:在谷歌搜索了近一个小时后,一般的共识似乎是你必须使用ISampleGrabber.如果您发现任何不同,请告诉我.

测试代码(main.cpp):

CWebcam* camera = new CWebcam();    
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);    
MessageBox(NULL, L"text", L"caption", NULL);    
if (SUCCEEDED(hr))
{       
camera->Create();       
camera->EnumerateCameras();     
camera->StartCamera();  
}   
int d;  
cin >> d;
Run Code Online (Sandbox Code Playgroud)

Webcam.cpp:

#include "Webcam.h"

CWebcam::CWebcam() {
    HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    //m_pTexInst = nullptr;
    //m_pTexRes = nullptr;
}

CWebcam::~CWebcam() {
    CoUninitialize();
    m_pDeviceMonikers->Release();
    m_pMediaController->Release();
}

BOOL CWebcam::Create() {
    InitCaptureGraphBuilder(&m_pFilterGraph, &m_pCaptureGraph);
    hr = m_pFilterGraph->QueryInterface(IID_IMediaControl, (void **)&m_pMediaController);
    return TRUE;
}

void CWebcam::Destroy() {
}

void CWebcam::EnumerateCameras() {  
    HRESULT hr = …
Run Code Online (Sandbox Code Playgroud)

c++ windows video webcam directshow

5
推荐指数
1
解决办法
1万
查看次数

使用 Media Foundation 进行视频合成

我正在尝试将 2 个视频合成为一个(也是音频)并另存为文件。比如说,在最终视频的左半部分显示源视频,在右侧显示其他源。任何编码都可以。不适用于 DirectShow。

我怀疑 IMFVideoMixerControl 可能与此有关,但不幸的是,我对 MF 太陌生,无法确定要采取的正确步骤来实现这一目标。如果您能给我一些指导,或者网络上有任何示例,请告诉我。感谢您的帮助。

c++ windows video winapi ms-media-foundation

5
推荐指数
1
解决办法
2137
查看次数

CreateFile返回错误INVALID_HANDLE_VALUE(对于COM端口),并且GetLastError返回"找不到指定的文件"

我打开一个端口与设备通信并控制设备,但CreateFile()函数返回INVALID_HANDLE_VALUE.

GetLastError()返回2表示找不到指定的文件.

我的代码如下所示:

wsprintf( szPort, "COM%d", nPort );
m_hIDComDev = CreateFile(szPort,
                         GENERIC_READ | GENERIC_WRITE, 
                         0, 
                         NULL, 
                         OPEN_EXISTING, 
                         FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 
                         NULL);
if (m_hIDComDev == INVALID_HANDLE_VALUE)
{
    DWORD err=GetLastError();
}
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个问题?

c++ winapi serial-port

5
推荐指数
1
解决办法
1万
查看次数

MFC - 资源 ID 的唯一性

我正在使用外部资源开发 MFC 应用程序。

resource.h 文件已被其他开发人员手动编辑,我已经看到存在冲突的 ID。

我看过 Microsoft TN020: ID Naming and Numbering Conventions

我只是想知道控件和其他资源(不包括字符串)的 ID 在整个应用程序中是否必须是唯一的,或者如果它们对于每个定义的对话框都是唯一的就足够了。

mfc visual-c++

5
推荐指数
1
解决办法
2363
查看次数