【发布时间】:2013-04-15 06:32:01
【问题描述】:
我最近使用 C++ 和 SDL 库创建了一个程序。最初,所有图像和 DLL 都与主应用程序位于同一文件夹中。我想让主应用程序更容易找到,所以我将所有图像移到了它们自己的文件夹中,并修改了我的源代码以在正确的文件夹中找到它们。到目前为止,一切都很好。主应用程序仍保留在与 DLL 相同的文件夹中。
我创建了一个主应用程序的快捷方式,并将它放在自己的文件夹中。我将目标更改为 %windir%\system32\cmd.exe /q/c start "" ""%SystemRoot%\explorer.exe %UserProfile%\Desktop\Cupcake Corner Build 2.0 (exe test)\dependecies\ Cupcake Corner.exe" 尝试创建一个通用快捷方式,以便该快捷方式适用于我将文件发送给的任何用户。
说到底,我遇到了一个问题。如果我打开主应用程序本身,它将加载图像并完美运行。如果我尝试通过其快捷方式访问主应用程序,则窗口将正确打开并显示正确的标题,尽管不会加载任何图像。我尝试移动一些文件,看看如果我将资源文件夹放在其他地方,快捷方式是否会看到它们,但到目前为止还没有运气。
图片在这里 -> C:\Users\Admin\Desktop\Cupcake Corner Build 2.0\dependecies\resources
此处的主应用程序/dll -> C:\Users\Admin\Desktop\Cupcake Corner Build 2.0\dependecies\
此处的快捷方式 -> C:\Users\Admin\Desktop\Cupcake Corner Build 2.0\
我使用的是 Microsoft Visual Studio Express 2010。我认为这与我在项目选项中设置项目目录的方式有关,但老实说,在这一点上我感到困惑。谁能指出我正确的方向?
【问题讨论】:
-
我认为问题在于你的应用在当前目录下寻找它的文件,而当前目录可以是任意目录。相反,它应该使用完全限定的路径来查找它们,该路径可以是硬编码的,也可以从注册表中获取(当然,您首先需要将其写入那里)。