无法定位程序输入点GdipGetImageGraphicsContext于动态链接库libvlc.dll上 (Dll 转 LIb)

本文主要是介绍无法定位程序输入点GdipGetImageGraphicsContext于动态链接库libvlc.dll上 (Dll 转 LIb),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的环境:Win7 X64 + VS2010 + vlc 2.2.1

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

安装好vlc 2.2.1后,在其安装目录有一个文件夹sdk, 里面存放的就是vlc 2.2.1的开发包了,我们将其复制出来使用即可,其它版本的vlc,估计也是如此吧。。。

将vlc开发包放到VS2010创建的工程中,编译Debug版本的程序,调用vlc一切正常,编译Release版本的程序,调用vlc却出现了以下错误:

无法定位程序输入点GdipGetImageGraphicsContext于动态链接库libvlc.dll上

------------------------------------------------------------------------------------------------------------------------------------------------

至于为什么会出现以上错误,现在我也不是很清楚,猜测是vlc开发包中的库文件有问题

libvlc.lib

libvlccore.lib

----------------------------------------------------------------------------------------------------------------------------------------

解决方法:

1. 动态调用vlc函数,即使用以下2个系统API来获取vlc函数地址,然后调用:

LoadLibrary
GetProcAddress
具体如何使用,我就不多说了,百度一下即可。
---------------------------------------------------------------------------------------------------------------------------------------------

2. 既然Debug版本正常,Release不正常,我怀疑是以下2个库文件的问题:

libvlc.lib

libvlccore.lib

既然怀疑是库文件的问题,我们重新创建以上那2个库文件即可。

如何根据dll来创建lib文件,可参考文章:http://bbs.pediy.com/showthread.php?p=1202951

既然工具人家都写好了,我们直接拿来使用即可,后面我会打包该工具,放到vlc开发包中:

(1) 使用工具,创建以下2个def文件

libvlc.def

libvlccore.def

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

有了def文件,就可以根据def文件创建lib文件了,打开cmd,转到vc以下目录,在cmd中,执行文件vcvars32.bat:

D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\

vcvars32.bat

然后敲创建lib库的命令:

link /LIB /DEF:xxx.def /OUT:xxx.lib

link /LIB /DEF:D:\Projects\VS2010\VlcDemo\VlcDemo\vlc-2.2.1\bin\libvlc.def /OUT:D:\Projects\VS2010\VlcDemo\VlcDemo\vlc-2.2.1\bin\libvlc.lib

link /LIB /DEF:D:\Projects\VS2010\VlcDemo\VlcDemo\vlc-2.2.1\bin\libvlccore.def /OUT:D:\Projects\VS2010\VlcDemo\VlcDemo\vlc-2.2.1\bin\libvlccore.lib

---------------------------------------------------------------------------------------

最后就得到我们想要的lib文件了,得到lib文件后,将其替换掉vlc自带的lib文件即可:

终于解决了烦人的:

无法定位程序输入点GdipGetImageGraphicsContext于动态链接库libvlc.dll上

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

文章末尾,提供以上我制作的,可正常使用的vlc开发包下载地址:

vlc-2.2.1-sdk.rar
http://download.csdn.net/detail/friendan/8706993

 

PS:https://download.csdn.net/download/u011430225/10997620

 


--------------------- 
作者:friendan 
来源:CSDN 
原文:https://blog.csdn.net/friendan/article/details/45768843 
版权声明:本文为博主原创文章,转载请附上博文链接!

这篇关于无法定位程序输入点GdipGetImageGraphicsContext于动态链接库libvlc.dll上 (Dll 转 LIb)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040926

相关文章

springboot将lib和jar分离的操作方法

《springboot将lib和jar分离的操作方法》本文介绍了如何通过优化pom.xml配置来减小SpringBoot项目的jar包大小,主要通过使用spring-boot-maven-plugin... 遇到一个问题,就是每次maven package或者maven install后target中的ja

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

使用@Slf4j注解,log.info()无法使用问题

《使用@Slf4j注解,log.info()无法使用问题》在使用Lombok的@Slf4j注解打印日志时遇到问题,通过降低Lombok版本(从1.18.x降至1.16.10)解决了问题... 目录@Slf4androidj注解,log.info()无法使用问题最后解决总结@Slf4j注解,log.info(

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关