我正在尝试嵌入外部软件来调用VS2010中的API。我在我的VS项目中包含了lib并包含外部软件的路径 - > Properties-> C \ C ++ - > General->其他包含目录和属性 - > Linker-> General->其他图书馆目录。我甚至在属性 - >链接器 - >输入 - >附加依赖项中包含了lib文件名。当我执行项目时,我得到错误说机器中缺少一个dll(我包含的lib)。当我将相同的dll复制到VS项目的运行时路径时,项目工作正常,但与外部项目的关联失败。除了我在这里发布的解决方案,你能否提出任何解决方案?谢谢。
答案 0 :(得分:0)
包含路径和指定的附加库仅供编译器/链接器用于构建程序。由于你显然使用动态链接,程序仍然需要这些库,但不知道在哪里找到它们。
当您尝试运行该程序时,Windows将尝试加载这些库。窗口将查找这些位置here。
当前进程的可执行模块所在的目录。
当前目录。
Windows系统目录。 GetSystemDirectory函数检索此目录的路径。
Windows目录。 GetWindowsDirectory函数检索此目录的路径。
PATH环境变量中列出的目录。
正如您所看到的,它首先搜索您执行程序的文件夹,这就是为什么当您将所有dll与exe放在一个文件夹中时它适用于您。
如果您不想这样,您可以将可以找到dll的地方添加到PATH环境变量(推荐)或将它们全部复制到windows / system32文件夹中,因为这是另一个地方窗口将查找dll。