我将在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在存在的任何库中调用相同的函数。