描述:
最近我在写一个directshow的filter, 希望能够使用一个额外的lib来进行相关的编解码,可是很奇怪的是,我虽然在project的setting中设定了link部分要包含的lib文件,可是他就是报告说有一个未识别的外部链接标记(是一个函数),但是这个函数应该是在该lib中已经存在的。
此外我额外的用小的可执行程序来使用这个lib文件,也是可以链接成功的,不知道在做这个filter的dll设定时会不会对这个链接有额外的影响呢?
filter本身以前是可以工作的,是用的directshow的一个范例加以修改来的,其中有五个相关的project(我对directshow也不是很熟),包括dsnet主要的dll注册部分吧、dsnetifc相关GUID的声明、dsrecv一个网络接收filter(由于我用不到,所以没有对他作什么变动)、dssend网络发送filter(我主要修改了这个filter,而且对额外的lib的使用也是在这个filter中)、nutil一些公用函数好像被放在了这里。
我发现最后的链接是在dsnet中完成的,它link了其他几个project生成的lib文件,因此我尝试在这里面加入对额外lib的包含,可是链接报告还是不能识别外部标识。我又尝试在dssend中加入额外的lib依赖,但还是失败,不知道问题究竟在哪里。
希望高手多多帮忙!
解决方案1:
1.lib文件能找到吗?
2.调用方式一致吗? (__stdcall/__cdel)