posts - 74,comments - 5,views - 46802

NX二次开发-获取当前dll的项目路径、获取配置文件路径

  1. 获取当前dll的项目路径;
复制代码
 1 string NXCommon::GetUserDir()
 2 {
 3     std::string dll = GetHostName();
 4     string dir, fname;
 5     SplitFileName(dll, dir, fname);
 6 
 7     string mdlName = GetModuleFullPath(fname);
 8     string tailName = "application\\" + fname;
 9 
10     string userDir = mdlName.substr(0, mdlName.size() - tailName.size());
11 
12     return userDir;
13 }
复制代码
复制代码
 1 string GetHostName()
 2     {
 3         HMODULE handle = NULL;
 4 
 5         bool isOK = GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
 6             (char*)_ReturnAddress(), &handle);
 7 
 8         if (isOK)
 9         {
10             char name[1024] = { 0 };
11             GetModuleFileNameA(handle, name, 1024);
12 
13             return std::string(name);
14         }
15         else
16         {
17             return "";
18         }
19     }
复制代码
复制代码
1 std::string GetModuleFullPath(std::string dllName)
2     {
3         HMODULE handle = GetModuleHandleA(dllName.c_str());
4 
5         char lpFileName[_MAX_PATH + 1] = { '/0' };
6         GetModuleFileNameA(handle, lpFileName, _MAX_PATH);
7 
8         return std::string(lpFileName);
9     }
复制代码
  1. 获取配置文件路径。
1 string NXCommon::GetConfigDir()
2 {
3     return GetUserDir() + "config\\";
4 }
posted on   不再低调  阅读(667)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示