c++ - 如何获取当前DLL的目录

标签 c++ go

我将在golang -o config.dll中构建c-shared。
假设目录为c:\test\config.dll在mail.dll中,我将打开一个配置文件。
该文件位于config.dll目录中。c:\test\config.json我用c ++ c:\test\c++.dll来称呼它。
在C++中,我使用

{ // NB: XP+ solution!
    HMODULE hModule = NULL;
    GetModuleHandleEx(
        GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
        (LPCTSTR)GetCurrentModule,
        &hModule);

    return hModule;
}
WCHAR path3[MAX_PATH + 1] = { 0 };
        HMODULE hm = GetCurrentModule();
        ::GetModuleFileName(hm, path3, MAX_PATH);
        PathRemoveFileSpec(path3);
// path3 c:\test\c++.dll
Go中的等效功能是什么?
我尝试使用
os.Getwd()
runtime.Caller(1)
os.Args[0]
os.Executable()
我想获取目录c:\test\

最佳答案

您可以使用cgo在存在的任何库中调用相同的函数。

关于c++ - 如何获取当前DLL的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64095781/

相关文章:

c++ - 将 2 个大于 long double 最大限制的数字相乘

c++ - 如何避免重复使用socket?

c++ - 为什么这个程序不起作用? (将文件内容复制到另一个的程序)

go - 如何提取表单数据字段名称

linux - 如果绑定(bind)到特定接口(interface)然后 IP 发生变化,会发生什么情况?

c++ - 链接器链接正确的文件,但找不到符号

c++ - 在虚拟继承的情况下如何对待祖 parent 类的成员?

go - 在 Golang 中错误下划线,无需解释

go - 在包的 init 函数中初始化变量是否确保 golang 应用程序中的单个实例?

go - 如何限制goroutine