我现在手头上有3份DLL,和对应的.LIB,.H文件...(开源的项目,非盗用)问题是这样的,如果直接用C#来调用DLL的话,需要重写大量的结构体(好象是要吧)...某位高人提示我说用COM重新把DLL封装,提供给C#使用...但是我对COM不熟悉,能不能提供相关的范例,或者意见呢?这几份dll来自ffmpeg(http://www.chinavideo.org/index.php?option=com_remository&Itemid=0&func=download&id=68&chk=50e2111e68e2a02aca4fbb54540ab8b4)的SDK版本...有人可以帮忙做个范例吗?我使用的是VS 2005...

解决方案 »

  1.   

    其实使用COM包装很简单,我经常干这事
    对COM不清楚没有关心,你使用VS2005的新建项目中的Visual C++下面的ATL项目模板,在右边选择“ATL项目”。之后的步骤可以去查MSDN。
    这样你就生成了一个COM工程。之后定义好COM接口,就可以编程了,把你的DLL封装一下。
    (但是定义COM接口也不是很容易的,因为接口参数的类型要受到限制的^^)完成后,编译工程,注册COM。如果要让.NET调用,要为这个COM生成一个.NET的装配件。使用tlbimp这个工具就可以生成这种dll了。接下来就简单了,只要在.NET工程中引用这个dll,就会自动的生成你可以使用的C#类了,与你使用其它的类没有任何的区别
      

  2.   

    我做过??去我网站BBS找吧
    www.hn-qx.com/bbs