0
我正在使用SolidWorks插件(DLL)。它取决于几个文件(sqlite数据库,草图等)。要安装插件,只需使用SolidWorks打开DLL。DLL中File.Open()的相对路径
在DLL中有一些例程调用File.Open()
关于我将通过相对路径引用的许多资源文件。目录。层次结构看起来像:
Plugin/
plugin.dll
Sketches/
various.sldprt
otherfile.db
otherdeps.txt
...
其中根目录。的插件可以在系统上的任何地方。 SolidWorks可以使用Open File对话框轻松加载该插件。问题是,一旦我加载DLL,任何调用File.Open()
(例如File.Open("Sketches/various.sldprt")
)与相对路径将不会工作,因为它将相对于目录。其中SLDWORKS.exe
(SW安装目录)驻留,而不是目录。的DLL。这意味着我必须将所有资源文件放在SolidWorks安装目录中,这是我想避免的。那可能吗?
的一般性意见将是“与工作目录不要乱”!如果你试图从你的代码中改变工作目录,它很可能会破坏其他的东西。 “工作目录”属于主要的可执行文件。我会建议保持原样。 你可以看到你的插件相关的文件是否在任何标准的“相对”目录,例如,base_dir/plugins等?然后您可以尝试使用相对的文件夹名称。 – Subbu
@Subbu是的,我试图避免与SW的工作目录混淆,但相对路径并不按照我的意图工作。为了清晰起见,我编辑了自己的帖子,因为我在深夜发帖,对此感到遗憾 – Alex