【发布时间】:2009-06-13 17:55:55
【问题描述】:
如何获取模块路径?
我正在编写包含在 DLL 中的扩展,并希望在运行时获取我的库的路径。
更新
当然,第一种方法效果很好
static wxString GetModulePath()
{
static wxString path;
WCHAR buf[512] = {0};
GetModuleFileName(NULL, buf, 511);
path = buf;
return wxPathOnly(path);
}
但最后我以第二个结尾
wxStandardPaths sp;
wxLogError(sp.GetPluginsDir());
【问题讨论】:
-
我只是在寻找“正确”、“跨平台”的方式
-
既然您已经接受了第一个答案,我对您真正想要实现的目标有点困惑:从主机应用程序内部获取扩展程序的位置?加载后从自身获取扩展模块的位置?如果是跨平台的,为什么要接受 Windows API 函数的答案?
-
从自身获取扩展模块的位置,一旦它被加载。
-
感谢您的支持。请注意,您不需要自己的 wxStandardPaths 类实例,只需编写“wxStandardPaths::Get().GetPluginsDir()”即可使用唯一的全局对象。