2011-12-01 63 views
0

我在VisualStudio 2008中使用libpng包来读取png图像,我的程序必须使用libpng12.dll。我把libpng12.dll放在Windows \ System32和Windows \ SysWOW64中,并且想用regsvr32.exe来注册它,但它不起作用,所以我的程序也无法使用它。我该如何解决它?先谢谢你!libpng12.dll与Win7(64位)不兼容?

+0

你确定DLL需要注册吗? –

+2

regsvr32.exe只能用于COM组件。普通的dll不需要(也不能)使用regsvr32.exe进行注册。 – fefe

+2

请不要,我再说一遍,不要搞乱Windows系统文件夹 - 这是众所周知的DLL地狱情况的原因。只需将dll放在可执行文件所在的文件夹中即可。不要忘记,在需要libpng12.dll的不同版本的计算机上可能安装了其他应用程序。 –

回答

0

DLL必须匹配EXE的位宽。一个64位的EXE只能使用64位的DLL,一个32位的EXE只能使用32位的DLL。 (禁止进程外的COM组件,但在这里没有关系)。

顺便说一句,解决DLL问题的常用工具是Dependency Walker