Vfw32.lib下载 error LNK2001: unresolved external symbol _AVIStreamWrite@32

问题描述:

本人使用 Microsoft Visual Studio 编写 MFC 代码
在编写压缩、存储等与视频相关的代码时(以下代码为例):

int Compress(void *aBuffer)
{
	//CyAssert( mCompressing );
	//CyAssert( mTempBuffer != NULL );

	long lSamplesWritten, lBytesWritten;

	for( unsigned short lLine = 0; lLine < mSizeY; lLine++ )
	{
		unsigned char *lCurLine    = (unsigned char *)aBuffer + (lLine             ) * mSizeX * mBPP;
		unsigned char *lCurLineInv = mTempBuffer              + (mSizeY - lLine - 1) * mSizeX * mBPP;
		memcpy( lCurLineInv, lCurLine, mSizeX * mBPP );
	}

	if(mTempBuffer == NULL || AVIStreamWrite( mAVICompressedStream, mLastSample, 1, mTempBuffer, mImageSize, 0, 
			&lSamplesWritten, &lBytesWritten ) != 0 ||
		lSamplesWritten < 1 ||
		lBytesWritten < 1 )
	{
		return 1;
	}
	mLastSample ++;
	return 0;
}

void SaveAVI(void *arg)
{
	BYTE * pData=(BYTE *)arg;
	BYTE * pDatas=new BYTE[WIDTH*HEIGHT*3];

	convert_yuv_to_rgb_buffer(pData,pDatas,WIDTH,HEIGHT);

	Compress( pDatas );

	delete []pDatas;
}

在编译过程中编译器显示以下错误:
error LNK2001: unresolved external symbol _AVIStreamWrite@32

解决方案:

出现这个错误的原因是缺少了Vfw32.lib这个库。
Vfw32.lib这个库是微软公司提供的视频处理功能库,大家可以在以下网址中下载:
下载地址:http://www.bvbcode.com/cn/lz8hqw0x-1687899-down
注意:有些坑人的网站里表面上写的是Vfw32.lib,其实下载到的是mfc42ud.lib这个库,这个是不对的。
在加载了VFM32.lib这个库之后,程序编译成功。

#pragma comment (lib,"VFW32")
发布了53 篇原创文章 · 获赞 18 · 访问量 7206

猜你喜欢

转载自blog.csdn.net/Nire_Yeyu/article/details/103907312