Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108475
  • 博文数量: 39
  • 博客积分: 2032
  • 博客等级: 大尉
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-09 10:21
文章分类
文章存档

2011年(2)

2010年(22)

2009年(15)

我的朋友

分类: WINDOWS

2010-06-02 20:38:24

为新博客做个链接:

OpenCV在VS2005下开发的工程,需要依赖OpenCV的几个dll文件,在<%OpenCV_HOME%>\bin目录下,由于是隐式调用,在没有安装OpenCV的机器上运行的程序的时候会遇到dll文件无法加载的问题,弄了很久,最后终于找出解决方案,使用延迟加载的方法,步骤如下:

1. 项目菜单 - 属性, 在属性页对话框里, 在"配置属性" - "链接器" - "输入"页中的"延迟加载的Dll"一项中, 填入自己的Dll的名字., 注意: 这里Debug版和Release版都需要进行设置

2. 将如下代码加入,并在程序初始化的地方调用:

BOOL CSmartGestureApp::DelayLoadHelper(LPCTSTR szAppendedPath)
{
	TCHAR sgCurPath[1024];
	ZeroMemory(sgCurPath, sizeof(sgCurPath));
	GetModuleFileName(NULL,sgCurPath,sizeof(sgCurPath)/sizeof(TCHAR));
	CString sgModulePath = sgCurPath;
	sgModulePath = sgModulePath.Left(sgModulePath.ReverseFind('\\'));
	sgDllPath.Format(_T("%s%s"),sgModulePath,_T("你要加载的dll的路径"));
	SetDllDirectory((LPCWSTR)sgDllPath);
	return TRUE;
}

该段代码主要是指定dll的搜索目录为程序安装路径下的某个目录

阅读(1804) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~