vlc-C#调用libVLC出错的问题

问题描述

C#调用libVLC出错的问题

最初,我参考了
http://www.cnblogs.com/haibindev/archive/2011/12/21/2296173.html
下载源码,并编译,提示出错:堆栈不对齐。
修改了
[DllImport("libvlc", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]之后,再编译,提示

调试后发现,在调用vlc _ new 函数之后,并没有成功创建实例,导致报错。

但是,我在网上找了很多,竟然发现没有对此问题的回答。
请大神帮忙解答下,如何解决这个问题。
我的编译环境是vs2010 .net4.0
附:

       public static IntPtr libvlc_new(string[] arguments)
        {
            PointerToArrayOfPointerHelper argv = new PointerToArrayOfPointerHelper();
            argv.pointers = new IntPtr[11];

            for (int i = 0; i < arguments.Length; i++)
            {
                argv.pointers[i] = Marshal.StringToHGlobalAnsi(arguments[i]);
            }

            IntPtr argvPtr = IntPtr.Zero;
            try
            {
                int size = Marshal.SizeOf(typeof(PointerToArrayOfPointerHelper));
                argvPtr = Marshal.AllocHGlobal(size);
                Marshal.StructureToPtr(argv, argvPtr, false);

                return libvlc_new(arguments.Length, argvPtr);
            }
            finally
            {
                for (int i = 0; i < arguments.Length + 1; i++)
                {
                    if (argv.pointers[i] != IntPtr.Zero)
                    {
                        Marshal.FreeHGlobal(argv.pointers[i]);
                    }
                }
                if (argvPtr != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(argvPtr);
                }
            }
        }

解决方案

C#安装文件中水晶报表出错的问题
c#中windows窗体调用问题

时间: 2024-10-27 09:24:02

vlc-C#调用libVLC出错的问题的相关文章

C#使用VLC的libvlc.dll开发了个视频播放器,播放高清视频就会卡,请问怎么调用libvlc的硬件解码

问题描述 C#使用VLC的libvlc.dll开发了个视频播放器,播放高清视频就会卡,请问怎么调用libvlc的硬件解码 解决方案 解决方案二:VLC官方软甲的设置中有硬件解码选项,所以开源文档里应该也会有对应的源码!求教...

C#调用libvlc库制作视频播放器

问题描述 C#调用libvlc库制作视频播放器,如何才能播放在线视频?我直接给一个URL给libvlc_media_new_location这个接口函数,整个程序就死了,请各位牛人帮忙,或者推荐更好的库和例子. 解决方案 解决方案二:vlc是一个强大而且开源的多媒体播放器,也可以说是一个多媒体平台.它支持非常广泛的媒体格式的本地播放,完全可以媲美mplayer,其对视频网络流的处理能力更是非常强悍.libvlc就是指的vlc的核心,它向外提供了一系列的接口,通过接口,来实现视频播放等复杂的功能.

WCF分布式开发常见错误解决(3):客户端调用服务出错

我们手动编码使用客户端调用WCF服务的时候会出现服务不支持 .Net Framing的错误 , 具体信息如下: You have tried to create a channel to a service that does not support .Net Framing. It is possible that you are encountering an HTTP endpoint. 开发常见错误解决(3):客户端调用服务出错-"> 解决办法: 检查宿主进程里,WCF服务的终结点

delphi excel-delphi调用excel出错Interface not supported

问题描述 delphi调用excel出错Interface not supported dephi调用excel,动态法调用是正确的,但使用控件法出现错误interface not supported 解决方案 在uses 中加入comobj这个引用哟

动态电用dll出错-动态调用Dll出错,服务模式

问题描述 动态调用Dll出错,服务模式 用MFC开发一个服务程序,服务程序在应用模式下,动态调用dll正常,然而变成服务模式,会导致服务停止.请问这是怎么回事,请大神指点. 解决方案 主要是你服务运行情况下,进程权限会变高,同时不能直接访问一些用户目录等.服务运行在SESSION0,这个可能会导致你的DLL处理有问题.你需要检查一下DLL的内部代码逻辑 解决方案二: http://www.cnblogs.com/duanshuiliu/archive/2012/07/05/2577402.htm

sublime-python为何导入模块调用函数出错

问题描述 python为何导入模块调用函数出错 我在sublime和editplus里写python,如下几句: -*- coding: utf-8 -*- import shutil shutil.copyfile('hello.txt', 'hello2.txt') 提示错误: Traceback (most recent call last): File "F:Pythonexercise文件处理shutil.py", line 2, in import shutil File

Struts2框架,调用action出错404

问题描述 Struts2框架,调用action出错404 struts2配置文件: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.

ios-Unity、iOS交互时,Unity调用iOS出错

问题描述 Unity.iOS交互时,Unity调用iOS出错 Undefined symbols for architecture armv7: "__PressButton1", referenced from: RegisterMonoModules() in RegisterMonoModules.o "__PressButton0", referenced from: RegisterMonoModules() in RegisterMonoModules.

wcf-C#窗体程序调用WCF出错

问题描述 C#窗体程序调用WCF出错 先写了一个WCF服务 ,发布到了IIS上,然后又创建一个窗体程序,添加引用服务的时候成功地把服务引了进来,可是在执行窗体程序的时候出错,提示"在 ServiceModel 客户端配置部分中,找不到引用协定"ServiceReference1.ISendJsonIntoDatabase"的默认终结点元素.这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素." 这是为什么呢?我看网上说可能和w