我目前正致力于使用Csharp获取cookie数据.我正在使用DLLImport在wininet.dll中调用InternetGetCookie,但是当我尝试它时,函数返回ERROR_INSUFFICIENT_BUFFER(错误代码122).
谁能帮我这个 ?
这是Dll参考的代码:
[DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint="InternetGetCookie")]
public static extern bool InternetGetCookie(string lpszUrl, string lpszCookieName,
ref StringBuilder lpszCookieData, ref int lpdwSize);
Run Code Online (Sandbox Code Playgroud)
这就是我调用函数的方式:
InternetGetCookie("http://example.com", null, ref lpszCookieData, ref size)
Run Code Online (Sandbox Code Playgroud)
谢谢.
在我的Windows 7 PC上,我有一套扬声器,一些无线耳机和一个USB网络摄像头.这意味着我有两个可能的音频输出设备和两个可能的音频输入设备.
我发现自己不得不经常在它们之间切换.目前这是一个手动过程:右键单击扬声器图标,选择"播放设备"或"录制设备"之一,在列表中选择正确的设备(并且那里也有一些"死"设备)然后点击"设置默认值".
我环顾四周,所有我能找到的人都是脚本SendKeys来实现自动化.
太糟糕了.
有没有以编程方式切换音频输入/输出设备,以便我可以编写一个简单的托盘应用程序/热键应用程序,以使这更容易?
我正在尝试查找COM/NET的所有whois服务器列表.Verisign是.com,.net,.name,.cc和.tv域名的权威注册机构.
可能的解决方案: 使用.com区域文件中的域列表找出whois服务器的至少一百万个(通过whois.crsnic.net)的完整列表,并从whois结果中读取官方whois.
这样我就可以构建一个90%以上的完整列表.我已准备好走这条路并在这里发布结果,但如果有人知道更好的方式/来源,请帮忙.谢谢!
我正在寻找编译ffmpeg,以便它只支持少数几个编解码器.具体来说,只有PCM编解码器和MP3.
有关如何做到这一点的任何指示?它可以用编译标志完成,还是我需要编辑代码?
我遵循此代码与C中的ffmpeg库一起使用.ffmpeg库的文档很少,很难理解每个函数的确切功能.
我理解代码(正在做什么).但我缺乏清晰度.有人可以帮帮我吗?
Q1)将struct AVFrameContext****和**filename(所需的最小非NULL参数)传递给函数avformat_open_input().顾名思义,输入文件是"打开"的.怎么样 ?
我注册了一个COM组件.我想打电话给它.
CLSID clsid;
RIID iid;
HRESULT hr = CLSIDFromProgID(OLESTR("se.mysoft"),&clsid);
LPVOID *pRet;
HRESULT hr1 = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, iid, pRet);
Run Code Online (Sandbox Code Playgroud)
我可以获得成功的clsid,但我在哪里可以得到iid?
我用OLE VIEWER查找界面:
[
odl,
uuid(F3F54BC2-D6D1-4A85-B943-16287ECEA64C),
helpstring("Isesoft Interface"),
dual,
oleautomation
]
interface Isesoft : IDispatch {
Run Code Online (Sandbox Code Playgroud)
然后我改变了我的代码:
CLSID clsid;
RIID iid;
IDispatch* pDispatch;
HRESULT hr = CLSIDFromProgID(OLESTR("se.mysoft"),&clsid);
HRESULT hr1 = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch,(void **)&pDispatch);
Run Code Online (Sandbox Code Playgroud)
但hr1返回失败.
我正在使用多个显示单元进行屏幕捕获.由于GetDesktopWindow()只获取主监视器的句柄,我尝试使用EnumDisplayMonitors()来完成这项工作.
在阅读MSDN网站后,我在main()中写了这些:
HDC hdc = GetDC(NULL);
EnumDisplayMonitors(hdc, NULL, MyCapScreenEnumProc, 0);
ReleaseDC(NULL, hdc);
Run Code Online (Sandbox Code Playgroud)
对于" BOOL CALLBACK MyCapScreenEnumProc(HMONITOR hMonitor,HDC hdcMonitor,LPRECT lprcMonitor,LPARAM dwData) "回调函数,我从MSDN复制了示例函数" int CaptureAnImage(HWND hWnd) " :捕获图像并进行了以下修改:
这是完整的代码:
BOOL CALLBACK MyCapScreenEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
HWND hWnd = GetDesktopWindow();
HDC hdcMemDC = NULL;
HBITMAP hbmScreen = NULL;
BITMAP bmpScreen;
//generate a unique file name for the bitmaps
static int file_number = 1;
stringstream ss;
ss << "all_capture_" << file_number++ …Run Code Online (Sandbox Code Playgroud) 我的任务是修改一个使用DirectShow进行视频渲染的应用程序.旧的应用程序工作正常,但它开始显示年龄.
由于我有游戏背景,我想我应该这样做.在使用不同的技术制作了一堆原型之后,我非常确定我可以提取视频到纹理的渲染并使用DirectX来满足所有客户的请求.
但是,我现在已经到了必须选择一种技术的地步,我不能再迷失了......
DirectShow显然是最古老的,但仍然运行良好,也主要是因为可用的大量编解码器.
媒体基金会已经推出了Windows Vista,直到Windows 8还有一个名为"媒体会话"的东西,之后他们推出了"媒体引擎".如果我是正确的编解码器被称为MFT?实际上有哪些网站可以像free-codecs.com一样提供这些网站?
除了这两种技术之外,还有DXVA,它允许您将视频解码卸载到GPU.目前,我遇到了3种不同的类型.DXVA1是自XP以来一直存在的实现,DXVA2是更新的API.但什么是DXVA-HD?它比DXVA2更新还是同等名称?
我真的想转向媒体基金会,开箱即用的编解码器非常适合客户想要使用的格式.我所关心的是为它获取编解码器是多么容易...... Windows 8+默认媒体播放器是否仍然具有DirectShow和MF渲染路径并且可以即时交换它们还是微软完全逐步淘汰DirectShow?
我也无法完全理解DXVA应该如何工作.鉴于我想基本上在游戏中渲染视频,只有让所有渲染实际发生在GPU上并将应用程序逻辑保留在CPU上才有意义,但我真的找不到任何关于如何使用Media的好例子基础.这主要是因为我不知道DXVA2和DXVA-HD之间的区别.Windows 7 SDK附带了所有3个实现的示例......
如果有人能够以粗体回答我的问题,请纠正我的错误信息,并指出我正确的方向(DirectX + Media Foundation + DXVA-无论如何),我将非常感激!它可以像"结合Windows 7 SDK的这3个示例来获得您想要的"一样简单.
整个任务的目标是再次获得顶级形式的应用程序,我想绝对肯定我会选择像DirectShow已经拥有的下一个十年的技术:P
我有一个directShow过滤器:MyFilter.ax
当我尝试使用Regsvr32实用程序注册MyFilter.ax时,它不会出现任何错误或任何消息(成功或失败).但是过滤器未注册.
Regsvr32实用程序适用于我的其他过滤器.
为什么Regsvr32 deoes不给出任何成功或失败的消息?如何调试我的Regsvr32故障成功?用于注册directshow过滤器的任何替代实用程序可能会给出有意义的消息?
最好的祝愿
更新:
我在虚拟机上安装了干净的win7操作系统.然后再次尝试register.Fail而没有来自regsvr32的消息响应.
但是再在虚拟机上安装一个干净的win7操作系统.然后进行所有更新.在我进行更新后,regsvr32工作并安装我的过滤器....我不知道是什么原因导致regsvr32失败以及什么样的更新修复它.或者它真的是一个更新问题......
如何在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 *'
请帮我.