C++ 为什么我会得到;在动态链接库VSSAPI.DLL中找不到过程入口点CreateVSSBackupComponentInternal。”;

C++ 为什么我会得到;在动态链接库VSSAPI.DLL中找不到过程入口点CreateVSSBackupComponentInternal。”;,c++,dll,volume-shadow-service,C++,Dll,Volume Shadow Service,大家好,我先给大家介绍一下背景: 我正在从事一个项目,该项目是在winxp sp3上使用vs2005构建的,该项目使用windows sdk 7.0,最重要的是热修复程序,目标是在win xp(sp 0)->windows 7上工作 该项目的一部分是查询快照,并稍作调整。 在我的开发环境中,一切正常, 在Windows7上一切正常(有点正常,但这不是重点) 在干净的xp机器(sp3和SP2)上,我得到: 当我启动应用程序时,甚至在我到达代码中与VSSAPI相关的部分之前,“过程入口点Create

大家好,我先给大家介绍一下背景: 我正在从事一个项目,该项目是在winxp sp3上使用vs2005构建的,该项目使用windows sdk 7.0,最重要的是热修复程序,目标是在win xp(sp 0)->windows 7上工作

该项目的一部分是查询快照,并稍作调整。 在我的开发环境中,一切正常, 在Windows7上一切正常(有点正常,但这不是重点)

在干净的xp机器(sp3和SP2)上,我得到: 当我启动应用程序时,甚至在我到达代码中与VSSAPI相关的部分之前,“过程入口点CreateVSSBackupComponents内部无法在动态链接库VSSAPI.DLL中找到…”

1) 在我开始调用之前,它如何引发消息? 2) 有人知道为什么它不起作用吗

谢谢,因为DLL是在应用程序启动时加载的,而不是在第一次需要时加载的。如果希望稍后加载,甚至有条件地加载,请查找延迟加载或LoadLibrary系统调用


2) 我不知道,但之前有人问过同样的问题:

谢谢你的回答,我看过那篇文章,我认为因为我的函数调用没有被调用,所以我的问题就不同了。我希望我的下一个问题不会太多,动态调用CreateBackupVssComponent很容易,但其余函数(属于vss系列成员的类的函数成员)会稍微困难一些。是调用CreateBackupVssComponent函数使应用程序验证它是否存在于DLL中?换句话说,如果我根本不调用函数,它会在DLL中搜索它吗?如果你的应用程序中有对函数的调用,DLL将在启动时加载,函数需要在其中。如果不使用LoadLibrary和GetProcAddress.mmm,则无法有条件地执行此操作。。。谢谢我将尝试动态加载它们。我发现我的项目中的一些库抛出一条消息“WINVER not defined.Defaulting to 0x0502(Windows Server 2003)”,这可能就是问题所在。谢谢嘿,还是不走运。我查看了VSbackup.h文件,并定义了createvssbackcomponents函数:inline HRESULT CreateVssBackupComponents(uu out IVssBackupComponents**ppBackup){return CreateVssBackupComponents internal(ppBackup);}操作系统版本是什么并不重要。