为什么我的程序只有在使用DLL';它在一个特定的位置?

为什么我的程序只有在使用DLL';它在一个特定的位置?,dll,dependencies,tcl,tk,Dll,Dependencies,Tcl,Tk,我已经使用的C API编写了一个Windows程序来创建一个漂亮的GUI。我已经安装了依赖项,所有的东西都可以正常编译和运行。编译需要我链接ActiveTcl提供的导入库 现在我想发布这个程序,我必须选择如何处理对ActiveTcl的依赖。一个选项是要求在我的程序之前安装ActiveTcl,而另一个选项是只分发我的程序实际使用的ActiveTcl DLL 如果我使用a查看我的程序,我可以看到使用了三个ActiveTcl DLLtcl86.dll,tk86.dll和zlib1.dll。然后我试着移

我已经使用的C API编写了一个Windows程序来创建一个漂亮的GUI。我已经安装了依赖项,所有的东西都可以正常编译和运行。编译需要我链接ActiveTcl提供的导入库

现在我想发布这个程序,我必须选择如何处理对ActiveTcl的依赖。一个选项是要求在我的程序之前安装ActiveTcl,而另一个选项是只分发我的程序实际使用的ActiveTcl DLL

如果我使用a查看我的程序,我可以看到使用了三个ActiveTcl DLL
tcl86.dll
tk86.dll
zlib1.dll
。然后我试着移动DLL

如果我将这些DLL移动到
C:\Windows
文件夹或程序文件夹,程序将不再运行。在移动DLL并在dependency walker中查看程序后,我可以看到DLL在这些替代位置被找到,但程序拒绝启动。我连一个错误都没有


你们知道为什么会这样吗?只有当DLL位于ActiveTcl的安装目录(
C:\Tcl\bin
)中时,我的程序才会运行。

DDL与应该存在于同一文件夹中的其他文件有依赖关系。

使用基本DLL编译它。基本DLL应该完成这项工作。使用基本DLL编译是什么意思?我真的不知道这意味着什么。依赖性沃克对3个DLL怎么说?它们可能有依赖项。@manuell在3个DLL中只有系统依赖项。