mediainfo

U盘里WMPInfo.xml是什么,可删除吗?WMP10同步功能的实现使用wmp的时候可以设置windows media player与某些设备同步,比如和光驱同步可以实现自动播放音乐光盘等等 。使用设备设置同步的时候,会放置一个名为WMPInfo.xml的文件,以跟踪同步关系 。如果删除了该文件,将导致windows media player丢失其与设备的同步关系信息 。

如何清除mediainfo关联右键菜单首先,我也是深受K-Lite Codec Pack..右键糟蹋,因电脑视频看不见封面 , 下了该软件,然而这个右键霸占了我的快捷M键,让我很是不爽,又无可奈何,因为怎么搞发现都搞不掉,我又是注册表,又是改数据的,通通都没用搞不掉他的原因是因为,他的主程序提前删掉了,而附带的快捷右键还遗留着,正确甩掉他的方式是: 1、重新安装他的主程序,右键没搞掉前,主程序不要删,正所谓解铃还须系铃人啊........ 中华民族果然是博大精深,文化深似海 , 这波我是不服也得服.........2、使用360的右键菜单 。X掉他 , 对!没错!美滋滋3、然后去到主程序的文件夹里,正确清除,他的主程序文件夹里有一个红色的圈圈按钮,点了会自己卸载,不要从其他渠道卸载,卸不干净,看一下我的效果图愉快的摆脱其糟蹋 。祝你生活愉快,另外,注:如果你对当前的生活不满意,可以联系我,微19986137738送最佳事业机会平台
c盘里的media文件夹可以删吗?1c盘里的media文件夹里面都是一些在“C:\WINDOWS\Media”位置 , 占用大量的硬盘空间,可以直接删除,不会影响统运行的!
2 在“C:\WINDOWS\Media”位置,最好酌情处理,因为windows运行时有时会涉及、 。

U盘里的Autorun.inf文件夹可以删吗autorun.inf最好不删

他是autorun病毒的免疫文件 。

如果删除 。那就下个unlocker

mediainfo.dll怎么用楼主你好 , 你可以重新下载一个mediainfo.dll文件,然后按如下步骤操作:文件上传了一、解压后直接拷贝该文件到系统目录里:1、Windows 95/98/Me系统,复制到C:\Windows\System目录下 。2、Windows NT/2000系统,复制到C:\WINNT\System32目录下 。3、Windows XP/WIN7/Vista系统,复制到C:\Windows\System32目录下 。4、如果您的系统是64位的请将文件复制到C:\Windows\SysWOW64目录二、打开"开始-运行-输入regsvr32 mediainfo.dll",回车即可解决 。已上传并提供下载连接,可根据需要下载 。mediainfo.dll下载地址:http://51dll.com/dll/file/?17232.1.5156.htm小技巧:如果无法进入桌面,可以启动安全模式或者使用PE启动电脑,然后修复 。【重要】:一定要选择与系统版本一致的DLL才可以mediainfo.dll无法定位、丢失、找不到、加载失败 等问题的修复
linux 下怎么用mediainfo可以看扫描方式,Interlaced是隔行扫描,也就是画面有交错的;Progressive是逐行扫描 。对于DVD的VOB文件还可以看场顺序,Top Field First是奇数场优先;Bottom Field First 是偶数场优先 。例如,我用KMP查看媒体信息(KMP也是调用MediaInfo.dll的.

java读取mediainfo怎么用楼主你好,你可以重新下载一个mediainfo.dll文件,然后按如下步骤操作: 文件上传了 一、解压后直接拷贝该文件到系统目...

怎么用MediaInfo查看场?可以看扫描方式,Interlaced是隔行扫描,也就是画面有交错的;Progressive是逐行扫描 。对于DVD的VOB文件还可以看场顺序,Top Field First是奇数场优先;Bottom Field First 是偶数场优先 。例如,我用KMP查看媒体信息(KMP也是调用MediaInfo.dll的),部份内容如下:Format : MPEG Video
Format version : Version 2
Format profile : Main@Main
Format settings, Matrix : Default
Duration : 1mn 0s
Bit rate mode : Variable
Bit rate : 7 239 Kbps
Nominal bit rate : 9 800 Kbps
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate : 29.970 fps
Standard : NTSC
Colorimetry : 4:2:0
Scan type : Interlaced
Scan order : Top Field First

如何用c++调用mediainfo获取信息/*Copyright (c) MediaArea.net SARL. All Rights Reserved. * *Use of this source code is governed by a BSD-style license that can *be found in the License.html file in the root of the source tree. */ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//// Example for MediaInfoLib// Command line version////+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #ifdef MEDIAINFO_LIBRARY#include "MediaInfo/MediaInfo.h" //Staticly-loaded library (.lib or .a or .so)#define MediaInfoNameSpace MediaInfoLib;#else //MEDIAINFO_LIBRARY#include "MediaInfoDLL/MediaInfoDLL.h" //Dynamicly-loaded library (.dll or .so)#define MediaInfoNameSpace MediaInfoDLL;#endif //MEDIAINFO_LIBRARY#include #include using namespace MediaInfoNameSpace; #ifdef __MINGW32__#ifdef _UNICODE#define _itot _itow#else //_UNICODE#define _itot itoa#endif //_UNICODE#endif //__MINGW32 int main (int /*argc*/, Char * /*argv[]*/){//Information about MediaInfoMediaInfo MI;String To_Display=MI.Option(__T("Info_Version"), __T("0.7.13;MediaInfoDLL_Example_MSVC;0.7.13")).c_str();To_Display += __T("\r\n\r\nInfo_Parameters\r\n");To_Display += MI.Option(__T("Info_Parameters")).c_str();To_Display += __T("\r\n\r\nInfo_Codecs\r\n");To_Display += MI.Option(__T("Info_Codecs")).c_str();//An example of how to use the libraryTo_Display += __T("\r\n\r\nOpen\r\n");MI.Open(__T("Example.ogg"));To_Display += __T("\r\n\r\nInform with Complete=false\r\n");MI.Option(__T("Complete"));To_Display += MI.Inform().c_str();To_Display += __T("\r\n\r\nInform with Complete=true\r\n");MI.Option(__T("Complete"), __T("1"));To_Display += MI.Inform().c_str();To_Display += __T("\r\n\r\nCustom Inform\r\n");MI.Option(__T("Inform"), __T("General;Example : FileSize=%FileSize%"));To_Display += MI.Inform().c_str();To_Display += __T("\r\n\r\nGet with Stream=General and Parameter=\"FileSize\"\r\n");To_Display += MI.Get(Stream_General, 0, __T("FileSize"), Info_Text, Info_Name).c_str();To_Display += __T("\r\n\r\nGetI with Stream=General and Parameter=46\r\n");To_Display += MI.Get(Stream_General, 0, 46, Info_Text).c_str();To_Display += __T("\r\n\r\nCount_Get with StreamKind=Stream_Audio\r\n");#ifdef __MINGW32__Char* C1=new Char[33];_itot (MI.Count_Get(Stream_Audio), C1, 10);To_Display +=C1;delete[] C1;#elsetoStringStream SS;SS int main (int argc, Char *argv[]){//From: preparing an example file for readingFILE* F=fopen("Example.ogg", "rb"); //You can use something else than a fileif (F==0)return 1;//From: preparing a memory buffer for readingunsigned char* From_Buffer=new unsigned char[7*188]; //Note: you can do your own buffersize_t From_Buffer_Size; //The size of the read file buffer//From: retrieving file sizefseek(F, 0, SEEK_END);long F_Size=ftell(F);fseek(F, 0, SEEK_SET);//Initializing MediaInfoMediaInfo MI;//Preparing to fill MediaInfo with a bufferMI.Open_Buffer_Init(F_Size, 0);//The parsing loopdo{//Reading data somewhere, do what you want for this.From_Buffer_Size=fread(From_Buffer, 1, 7*188, F);//Sending the buffer to MediaInfosize_t Status=MI.Open_Buffer_Continue(From_Buffer, From_Buffer_Size);if (Status&0x08) //Bit3=Finishedbreak;//Testing if there is a MediaInfo request to go elsewhereif (MI.Open_Buffer_Continue_GoTo_Get()!=(MediaInfo_int64u)-1){fseek(F, (long)MI.Open_Buffer_Continue_GoTo_Get(), SEEK_SET);//Position the fileMI.Open_Buffer_Init(F_Size, ftell(F));//Informing MediaInfo we have seek}}while (From_Buffer_Size>0);//FinalizingMI.Open_Buffer_Finalize(); //This is the end of the stream, MediaInfo must finnish some work//Get() exampleString To_Display=MI.Get(Stream_General, 0, __T("Format"));#ifdef _UNICODEstd::wcout << To_Display;#elsestd::cout<< To_Display;#endif}*/

MediaInfo显示的这些是什么意思?有谁知道?常规
完整的名称l:\视频\movoo24a.多媒体文件格式
格式多媒体文件格式
格式/信息音频、视频转换
文件大小104kB
时间2秒120毫秒
整体比特率403千位节/秒

视频
序列号0
格式联合图象专家组
编解码器序列号视频编码格式
时间2秒71毫秒
比特率275千位节/秒
宽度176像素
高度144像素
显示长宽比1.222
帧率9.174每秒帧数
色彩空间亮度和色差信号



仅供参考

U盘里的.mediaInfo可以删除吗怎麽?你删不掉?这是什麽软件呀??。∧阌梦募鬯榛恐菩陨境∈翟诓恍芯透袷交疷盘(这是下下策)?。。?说说具体情况 就选中然后删除delete

MediaInfo怎么使用一软件简介
一用来分析视频和音频文件的编码和内容信息
⑴内容信息:标题 , 作者,专辑名 , 音轨号,日期,总时间……
⑵视频:编码器,长宽比,帧频率 , 比特率……
⑶音频:编码器,采样率,声道数,语言,比特率……
⑷文本:语言和字幕
⑸段落:段落数 , 列表
DivX, XviD, H263, H.263, H264, x264, ASP, AVC, iTunes, MPEG-1, MPEG1, MPEG-2, MPEG2, MPEG-4, MPEG4, MP4, M4A, M4V, QuickTime, RealVideo, RealAudio, RA, RM, MSMPEG4v1, MSMPEG4v2, MSMPEG4v3, VOB, DVD, WMA, VMW, ASF, 3GP, 3GPP, 3GP2
二支持格式
⑴视频格式:MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)...
(编码器:DivX, XviD, MSMPEG4, ASP, H.264, AVC...)
⑵音频格式:OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF...
⑶字幕格式:SRT, SSA, ASS, SAMI...multiplexer, demuxer, mixer, muxer, video decoder, audio decoder, PAL, NTSC
二功能特点
一支持众多视频和音频文件格式
二多种查看方式:表格,树状图 , 文本,网页 , 自定义……
三信息导出:CSV,表格 , 文本,网页,HTML , 自定义……
四与Windows资源管理器整合:拖放,右键菜单
三查看文件
一使用右键菜单查看
⑴设置MediaInfo
⒈单击[选项]菜单/选择[参数设置]
⒉单击[设置]/勾选“[资源管理器]右键菜单”/[确定]
⒊退出MediaInfo
⑵查看文件
⒈右击文件/选择[MediaInfo]
(自动启动MediaInfo)
⒉单击[查看]菜单/选择查看方式
二使用添加文件
⒈启动MediaInfo
⒉单击[选择多媒体文件]或[选择文件夹]或[浏览]按扭/添加要查看的文件
⒊单击[查看]菜单/选择查看方式

mediainfo是哪家公司的产品完整的名称l:\视频\movoo24a.多媒体文件格式
格式多媒体文件格式
格式/信息音频、视频转换
文件大小104kB
时间2秒120毫秒
整体比特率403千位节/秒

视频
序列号0
格式联合图象专家组
编解码器序列号视频编码格式
时间2秒71毫秒
比特率275千位节/秒
宽度176像素
高度144像素
显示长宽比1.222
帧率9.174每秒帧数
色彩空间亮度和色差信号

仅供参考

如何清除mediainfo关联右键菜单除不常用菜单项
或许右键菜单中的有些选项你并不常用 , 或者,有些软件已被删除,
但其右键菜单中的选项却仍占用着屏幕空间 。要删除这些无用的右键菜单项,请按下述方法操作:
1. 单击Windows的“开始”菜单,单击“运行”,在“打开”框中键入“regedit”,
单击“确定”按钮,打开“注册表编辑器”窗口 。
2. 展开“HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers”分支,在其下找到要删除的
无用项 , 然后右键单击该项,再单击“删除”将其删除即可清除右键菜单中的对应选项 。对于仅在
3.关闭“注册表编辑器”窗口 。
怎么样,经过以上工作,右键菜单清爽多了吧!
清理文件右键
运行 regedit 展开HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
分支 在其下找到要删除的无用项 删除即可清洁右键菜单中的对应选项
清理IE右键!

右键菜单:添加到Windows media Player列表 怎样去除?解决的办法:1、从控制面板中依次进入“程序/默认程序/设置程序访问和计算机的默认值”,选择“自定义”并展开;2、找到“选择默认的媒体播放机”小节(如图2),在这里取消“Windows Media Player”后面的“启用对此程序的访问”复选框的选择 , 确认之后即可生效 。3、现在 , MP3文件的右键菜单就再也不会出现与Windows Media Player有关的多余选项 。
mediainfolite 0.7.59安装后只有影音文件有右键mediainfo菜单,如何使所有文件都有此菜单?32位系统使用:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\MediaInfo\Command]
@="\"C:\\Program Files\\K-Lite Codec Pack\\Tools\\MediaInfo.exe\" \"%1\""

64位系统使用:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\MediaInfo\Command]
@="\"C:\\Program Files (x86)\\K-Lite Codec Pack\\Tools\\MediaInfo.exe\" \"%1\""



根据系统类别,把以上代码复制到记事本,另存为*.reg文件,双击导入注册表即可 。

怎样清除显卡右键菜单如何清理你的电脑右键菜单
如何清除显卡驱动在右键加入的菜单?1.打开记事本
2.把下面的所有文字复制进去:

@ ECHO OFF
@ ECHO.
@ ECHO.
@ ECHO.说明
@ ECHO -----------------------------------------------------------------------
@ ECHO 很多显卡在装了驱动之后,桌面右键会多出一项或多项菜单,这些功能并不实用 , 
@ ECHO 还会拖慢右键的弹出速度,以Intel的集成显卡为甚 。迟纯的反应速度严重地影响
@ ECHO 了使用者的心情 。我们最好清除它 。《GhostXP电脑公司特别版》作者编 。
@ ECHO -----------------------------------------------------------------------
PAUSE

regsvr32 /u /s igfxpph.dll
reg delete HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers /f
reg add HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\new /ve /d {D969A300-E7FF-11d0-A93B-00A0C90F2719}
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v HotKeysCmds /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v IgfxTray /f

3.点文件-保存
4.在类型里选择“所有文件”
5.保存为后缀名为“.bat”的文件如:“清除多余右键菜单.bat”
6.运行

mediainfo怎么设置中文很多播放器本身就可以显示,也可以用专业的工具 。1、下载MediaInfo这个软件 。这是个免费的测试视频详细信息的专业软件 。2、第一次运行,可以选择语言 。支持简体中文 。2、打开界面后,把视频拖进去,然后就会显示基本信息 。详细信息可以选择文本或树状显示,最为详细 。

C# 如何引用MediaInfo.dll 有代码的更好.在项目解决方案下面有个引用的,你可以右击那个引用->添加引用就OK了,使用的时候到代码里面打mediainfo后面打点看看里面具体说明有什么类....

如何在我的linux源码中导入mediainfo可以看扫描方式,Interlaced是隔行扫描,也就是画面有交错的;Progressive是逐行扫描 。对于DVD的VOB文件还可以看场顺序,Top Field First是奇数场优先;Bottom Field First 是偶数场优先 。例如,我用KMP查看媒体信息(KMP也是调用MediaInfo.dll的.

C#控制台程序如何引用外部的dll 最好有图 谢谢一、DLL与应用程序
动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一 , 打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现 。
动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它DLL调用来完成一定操作的函数(方法 。注:C#中一般称为“方法”),但这些函数不是执行程序本身的一部分,而是根据进程的需要按需载入,此时才能发挥作用 。
DLL只有在应用程序需要时才被系统加载到进程的虚拟空间中,成为调用进程的一部分 , 此时该DLL也只能被该进程的线程访问 , 它的句柄可以被调用进程所使用,而调用进程的句柄也可以被该DLL所使用 。在内存中,一个DLL只有一个实例,且它的编制与具体的编程语言和编译器都没有关系,所以可以通过DLL来实现混合语言编程 。DLL函数中的代码所创建的任何对象(包括变量)都归调用它的线程或进程所有 。
下面列出了当程序使用 DLL 时提供的一些优点:[1]
1)使用较少的资源
当多个程序使用同一个函数库时 , DLL 可以减少在磁盘和物理内存中加载的代码的重复量 。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在 Windows 操作系统上运行的程序 。
2)推广模块式体系结构
DLL 有助于促进模块式程序的开发 。这可以帮助您开发要求提供多个语言版本的大型程序或要求具有模块式体系结构的程序 。模块式程序的一个示例是具有多个可以在运行时动态加载的模块的计帐程序 。
3)简化部署和安装
当 DLL 中的函数需要更新或修复时,部署和安装 DLL 不要求重新建立程序与该 DLL 的链接 。此外,如果多个程序使用同一个 DLL,那么多个程序都将从该更新或修复中获益 。当您使用定期更新或修复的第三方 DLL 时 , 此问题可能会更频繁地出现 。
二、DLL的调用
每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍 。首先,您需要了解什么是托管,什么是非托管 。一般可以认为:非托管代码主要是基于win 32平台开发的DLL , activeX的组件,托管代码是基于.net平台开发的 。如果您想深入了解托管与非托管的关系与区别,及它们的运行机制,请您自行查找资料 , 本文件在此不作讨论 。
(一)调用DLL中的非托管函数一般方法
首先,应该在C#语言源程序中声明外部方法,其基本形式是:
[DLLImport(“DLL文件”)]
修饰符 extern 返回变量类型 方法名称 (参数列表)
其中:
DLL文件:包含定义外部方法的库文件 。
修饰符: 访问修饰符,除了abstract以外在声明方法时可以使用的修饰符 。
返回变量类型:在DLL文件中你需调用方法的返回变量类型 。
方法名称:在DLL文件中你需调用方法的名称 。
参数列表:在DLL文件中你需调用方法的列表 。
注意:需要在程序声明中使用System.Runtime.InteropServices命名空间 。
DllImport只能放置在方法声明上 。
DLL文件必须位于程序当前目录或系统定义的查询路径中(即:系统环境变量中Path所设置的路径) 。
返回变量类型、方法名称、参数列表一定要与DLL文件中的定义相一致 。

若要使用其它函数名,可以使用EntryPoint属性设置,如:
[DllImport("user32.dll", EntryPoint="MessageBoxA")]
static extern int MsgBox(int hWnd, string msg, string caption, int type);
其它可选的 DllImportAttribute 属性:
CharSet 指示用在入口点中的字符集,如:CharSet=CharSet.Ansi;
SetLastError 指示方法是否保留 Win32"上一错误" , 如:SetLastError=true;
ExactSpelling 指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配,如:ExactSpelling=false;
PreserveSig指示方法的签名应当被保留还是被转换 ,  如:PreserveSig=true;
CallingConvention指示入口点的调用约定 ,  如:CallingConvention=CallingConvention.Winapi;

此外,关于“数据封送处理”及“封送数字和逻辑标量”请参阅其它一些文章[2] 。
C#例子:
1.启动VS.NET,新建一个项目,项目名称为“Tzb”,模板为“Windows 应用程序” 。
2.在“工具箱”的“ Windows 窗体”项中双击“Button”项,向“Form1”窗体中添加一个按钮 。
3.改变按钮的属性:Name为 “B1”,Text为 “用DllImport调用DLL弹出提示框”,并将按钮B1调整到适当大小,移到适当位置 。
4.在类视图中双击“Form1”,打开“Form1.cs”代码视图,在“namespace Tzb”上面输入“using System.Runtime.InteropServices;”,以导入该命名空间 。
5.在“Form1.cs[设计]”视图中双击按钮B1,在“B1_Click”方法上面使用关键字 static 和 extern 声明方法“MsgBox”,将 DllImport 属性附加到该方法,这里我们要使用的是“user32.dll”中的“MessageBoxA”函数,具体代码如下:


[DllImport("user32.dll", EntryPoint="MessageBoxA")]
static extern int MsgBox(int hWnd, string msg, string caption, int type);



然后在“B1_Click”方法体内添加如下代码,以调用方法“MsgBox”:


MsgBox(0," 这就是用 DllImport 调用 DLL 弹出的提示框哦! "," 挑战杯 ",0x30);




6.按“F5”运行该程序,并点击按钮B1

怎样在C#中调用DLL中的函数,最好有代码和详细说明[C#动态调用C++编写的DLL函数]
by jingzhongrong2008-05-08 动态加载DLL需要使用Windows API函数:LoadLibrary、GetProcAddress以及FreeLibrary 。我们可以使用DllImport在C#中使用这三个函数 。

[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);

[DllImport("Kernel32")]
public static extern int LoadLibrary(String funcname);

[DllImport("Kernel32")]
public static extern int FreeLibrary(int handle);

当我们在C++中动态调用Dll中的函数时,我们一般的方法是:
假设DLL中有一个导出函数,函数原型如下:
BOOL __stdcall foo(Object &object, LPVOID lpReserved);

1、首先定义相应的函数指针:
typedef BOOL (__stdcall *PFOO)(Object &object, LPVOID lpReserved);

2、调用LoadLibrary加载dll:
HINSTANCE hInst = ::LoadLibraryW(dllFileName);

3、调用GetProcAddress函数获取要调用函数的地址:
PFOO foo = (PFOO)GetProcAddress(hInst,"foo");
if(foo == NULL)
{
FreeLibrary(hInst);
return false;
}

4、调用foo函数:
BOOL bRet = foo(object,(LPVOID)NULL);

5、使用完后应释放DLL:
FreeLibrary(hInst);

那么在C#中应该怎么做呢?方法基本上一样,我们使用委托来代替C++的函数指针,通过.NET Framework 2.0新增的函数GetDelegateForFunctionPointer来得到一个委托的实例:

下面封装了一个类,通过该类我们就可以在C#中动态调用Dll中的函数了:

public class DLLWrapper
{
///
/// API LoadLibrary
///
[DllImport("Kernel32")]
public static extern int LoadLibrary(String funcname);

///
/// API GetProcAddress
///
[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname);

///
/// API FreeLibrary
///
[DllImport("Kernel32")]
public static extern int FreeLibrary(int handle);

///
///通过非托管函数名转换为对应的委托, by jingzhongrong
///
///通过LoadLibrary获得的DLL句柄
///非托管函数名
///对应的委托类型
///委托实例,可强制转换为适当的委托类型
public static Delegate GetFunctionAddress(int dllModule, string functionName, Type t)
{
int address = GetProcAddress(dllModule, functionName);
if (address == 0)
return null;
else
return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
}

///
///将表示函数地址的IntPtr实例转换成对应的委托, by jingzhongrong
///
public static Delegate GetDelegateFromIntPtr(IntPtr address, Type t)
{
if (address == IntPtr.Zero)
return null;
else
return Marshal.GetDelegateForFunctionPointer(address, t);
}

///
///将表示函数地址的int转换成对应的委托,by jingzhongrong
///
public static Delegate GetDelegateFromIntPtr(int address, Type t)
{
if (address == 0)
return null;
else
return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
}
}

通过这个类,我们这样调用DLL:

1、声明相应的委托(正确声明很重要,否则不能调用成功,后面有详细介绍) 。

2、加载DLL:
int hModule = DLLWrapper.LoadLibrary(dllFilePath);
if (hModule == 0)
return false;

3、获取相应的委托实例:
FOO foo = (FOO)DLLWrapper.GetFunctionAddress(hModule, "foo", typeof(FOO));
if (foo == null)
{
DLLWrapper.FreeLibrary(hModule);
return false;
}

4、调用函数:
foo(...);

5、.NET并不能自动释放动态加载的DLL,因此我们在使用完DLL后应该自己释放DLL:
DLLWrapper.FreeLibrary(hModule);

下面我们将就委托应如何声明进行相应的讨论 , 在实际操作过程中,我发现使用DllImport方法和动态调用方法两者在C#中对DLL中函数原型的声明是有些区别的,下面我介绍动态调用中委托的声明:

1、首先应该注意的是,C++中的类型和C#中类型的对应关系,比如C++中的long应该对应C#中的Int32而不是long,否则将导致调用结果出错 。

2、结构的声明使用StructLayout对结构的相应布局进行设置,具体的请查看MSDN:

使用LayoutKind指定结构中成员的布局顺序,一般可以使用Sequential:
[StructLayout(LayoutKind.Sequential)]
struct StructVersionInfo
{
public int MajorVersion;
public int MinorVersion;
}
另外,如果单独使用内部类型没有另外使用到字符串、结构、类,可以将结构在C#中声明为class:
[StructLayout(LayoutKind.Sequential)]
class StructVersionInfo
{
public int MajorVersion;
public int MinorVersion;
}

对应C++中的声明:
typedef struct _VERSION_INFO
{
int MajorVersion;
int MinorVersion;
} VERSION_INFO, *PVERSION_INFO;

如果结构中使用到了字符串,最好应指定相应的字符集:
[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode)]

部分常用的声明对应关系(在结构中):
C++:字符串数组
wchar_t Comments[120];
C#:
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 120)]
public string Comments;

C++:结构成员
VERSION_INFO ver;
C#
publicStructVersionInfo ver;

C++:函数指针声明
PFOO pFoo; //具体声明见文章前面部分
C#:
publicIntPtr pFoo; //也可以为 public int pFoo;
//不同的声明方法可以使用上面DLLWrapper类的相应函数获取对应的委托实例

如果在结构中使用到了union,那么可以使用FieldOffset指定具体位置 。

3、委托的声明:

当C++编写的DLL函数需要通过指针传出将一个结构:如以下声明:
void getVersionInfo(VERSION_INFO *ver);
对于在C#中声明为class的结构(当VERSION_INFO声明为class)
delegate voidgetVersionInfo(VERSION_INFO ver);
如果结构声明为struct,那么应该使用如下声明:
delegate voidgetVersionInfo(refVERSION_INFO ver);
注意:应该使用ref关键字 。


如果DLL函数需要传入一个字符串,比如这样:
BOOL __stdcall jingzhongrong1(const wchar_t* lpFileName, int* FileNum);
那么使用委托来调用函数的时候应该在C#中如下声明委托:
delegate bool jingzhongrong1(
[MarshalAs(UnmanagedType.LPWStr)]String FileName,
ref int FileNum);
注意:应该使用[MarshalAs(UnmanagedType.LPWStr)]和String进行声明 。


如果要在DLL函数中传出一个字符串,比如这样:
void __stdcall jingzhongrong2(
wchar_t* lpFileName, //要传出的字符串
int* Length);
那么我们如下声明委托:
//使用委托从非托管函数的参数中传出的字符串,
//应该这样声明,并在调用前为StringBuilder预备足够的空间
delegate void jingzhongrong2(
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpFileName,
ref int Length,
);
在使用函数前 , 应先为StringBuilder声明足够的空间用于存放字符串:
StringBuilder fileName = new StringBuilder(FileNameLength);

MediaInfo显示的这些内容是什么意思文件名:L:\video\mov0024a.avi应该是你手机内存卡上的录像 。文件大小104kB,总长持续时间2.12秒,总码率403kbps 。视频分辨率176×144,编码器为MJPEG,视频码率275kbps,帧率9.174fps(……幻灯片……)总之……你的手机该换换了……

怎样查看一个视频文件的参数等数据?汉化版的维翠视频编辑器,可以看

怎么查看视频的一些参数视频格式转换软件格式工厂及3gp-video-converter中,都可以查看视频的属性 。
如果是3gp-video-converter , 可以直接把能正常播放的视频加入到3gp-video-converter中,在素材上点右键---属性,这时就有视频的6个关键参数了:格式(压缩方式)、帧速率、视频分辨率、音频格式(压缩方式)、采样速率和声道 。
如果用格式工厂,同样把能正常播放的视频加入到格式工厂中,在窗口中点“多媒体文件信息”按钮,出现全部的参数,只不过是英文的

怎么查看视频的参数?暴风影音是一个比较好的视频播放器 , 同时可以查看视频的详细格式参数如:比特率、帧率、采样率、分辨、格式、视频编码、视频大少、纵横比、音频编码、音频声道等 。具体操作:用暴风影音打开一个视频,在菜单栏选择“查看”再勾选你要查看的选项,比如说统计栏里就有很多你需要的参数;播放-滤镜,这里也有一些相关设置 。

怎样用MediaInfo 软件检测视频的格式点文件选择打开
文件然后下面就显示出这个文件的格式!
选择打开文件夹就是一次多?。∫彩且桓龈鱿允荆∠旅嬗型甲邢缚聪拢『呛窍M锏侥?br>示!在浏
览路径那里选择你想看的文件!

安装了Adobe Acrobat之后 , 点击文件的右键菜单,没有“转换为Adobe PDF”和“在Acrobat中合并支持的文件”

mediainfo

文章插图

1、打开一个的Adobe Acrobat的进入到该界面当中 。点击左侧上角中的 文件 的选项 。2、选中了的文件 的选项,弹出了下拉菜单选中为 合并 的选项 。3、选中了合并的选项之后,弹出了下一级菜单选中为 合并文件到单个pdf的选项 。4、进入到合并文件的窗口当中,选中一个文件。5、选中了文件之后,点击 删除 按钮 。6、可以看到是对于当前中的,文件的被删除合并成功了 。
安装了WPS文件之后,右键无法创建WORD文件?可以是要软件修复的方法解决:1、首先,打开360安全卫士首页,在右下方找到“人工服务”图标 , 鼠标左键单击打开人工服务 。2、然后,在上方查找方案的搜索框中输入“右键菜单无法新建Office文件”,搜索问题的解决方案 。3、打开搜索结果中第一条工具方案,在这里可以看到症状表现和出现该问题的可能原因,仔细阅读查看是否遇到的问题相符合,如若相符 , 点击立即修复 。4、可以看到正在为您修复您所遇到的问题,稍等片刻等进度条进行完毕,等待修复完成 。5、最后见证奇迹的时刻到了,修复已完成,可以新建office了 。如果仍然没有解决问题,可以点击“还没有解决”字样查找其他解决方案即可 。
MediaInfo查看视频参数的一个问题?.大小 : 2.02 GiB (100%) 100%是表示无损吗? 百分比是越高越清晰吗? bits/(pixel*frame)(数据密度) : 3.988 数据密度又是什么意思?

有些avi后缀的视频用mediainfo测出来格式是mpeg-4(Base Media),这种情况是发布者假冒的avi吗?可能发布者只是把后缀改了以下 。

射手影音提示缺少MediaInfo.dll怎么办?首先 你去百度下mediainfo.dll 下载下来放入系统盘下的(一般是C:)windows\system32下
是不是 你的杀软件的问题你把杀软关了 再安装试试

我要安装格式工厂,电脑出现丢失mediainfo.dll,应该怎么办??win7的系统 重新下载了还是安装出错 怎么办mediainfo.dll不是系统组件,应该是格式化工厂依赖这个DLL,但是你下载的格式化工厂没有这个组件 , 你可以选择其他的下载点进行下载,下载一个包含这个DLL的安装包就行了 。

有关unrar.dll在射手影音安装中出现的问题把你的射手影音卸载后重新下载最新版安装使用 , 不要用老的更新试试,应该有用

电脑提示media library.dll丢失怎么办?【mediainfo】第一种办法卸载了在装一遍 。第二种去网上找到对应的dll下载了放到相应的文件夹里去