tft每日頭條

 > 圖文

 > c的環境變量怎麼配置

c的環境變量怎麼配置

圖文 更新时间:2024-08-09 13:27:57

在UG二次開發過程中我們需要為第三方插件配置環境變量讓UG可以找到對應的文件,UG為用戶提供的環境變量有:UGII_VENDOR_DIR、UGII_SITE_DIR、UGII_USER_DIR、UGII_GROUP_DIR(級别依次遞減)。在電腦中添加環境變量隻要右鍵點擊我的電腦->屬性->高級設置->環境變量,我們隻需添加UGII_USER_DIR變量。

c的環境變量怎麼配置(CC實戰016)1

我們将開發好的插件(定制的菜單、工具欄、對話框、功能函數dll等文件)一起打包給用戶,當用戶拿到文件後可以放置在任意目錄,然後右鍵點擊我的電腦->屬性->高級設置->環境變量,将當前目錄添加給變量UGII_USER_DIR即可。為方便用戶使用,我寫個一個簡單的設置環境變量程序SetUGEnv.exe,雙擊該應用就可以實現将當前目錄配置到UGII_USER_DIR變量。

c的環境變量怎麼配置(CC實戰016)2

獲取系統當前目錄

操作很簡單,這裡我們要做的就是獲取到當前文件存放目錄,然後将該目錄添加到環境變量中,這裡我添加了一個判斷,那就是如果該變量已經存在則提示用戶變量值并提示是否繼續配置環境變量。用到的頭文件為#include <Windows.h>,獲取當前目錄我們可以使用GetCurrentDirectory(MAX_PATH,path)方法,返回操作系統的當前目錄,參數有兩個分别是指定緩沖區的長度和存儲路徑的字符串空間。

c的環境變量怎麼配置(CC實戰016)3

獲取注冊表信息

在設置環境變量之前我們現獲取下環境變量中是否已存在UGII_USER_DIR變量,如果存在則告訴用戶該變量指向哪個目錄,這樣用戶隻需要将我們的插件拷貝至相應目錄即可,用戶也可以選擇是否繼續注冊當前目錄給UGII_USER_DIR變量。查詢注冊表用到的是RegQueryValueEx方法,同樣來至頭文件#include <Windows.h>。

c的環境變量怎麼配置(CC實戰016)4

設置環境變量

這次主要是為了設置UGII_USER_DIR變量,所以我将UGEnv直接定義在函數裡面了。這裡主要是通過注冊表進行環境變量的注冊,所以我們需要通過RegOpenKeyEx先打開注冊表并獲取到句柄,然後通過句柄來操作該注冊表的環境變量的注冊。注冊通過RegSetValueEx方法實現,最後記得RegCloseKey(hKey)關閉注冊表生效配置信息。

c的環境變量怎麼配置(CC實戰016)5

HKEY hKey;//句柄 const char *key = "System\\CurrentControlSet\\Control\\Session Manager\\Environment"; //注冊表路徑 RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_READ | KEY_WRITE, &hKey //打開注冊表 RegSetValueEx(hKey, UGEnv, NULL, REG_SZ, (const unsigned char *)path, strlen(path)); //設置注冊表 RegCloseKey(hKey); //關閉注冊表

最後我們通過一個main函數将以上方法串起來就可以使用啦, 這裡需要注意的是本次注冊的是系統變量而不是用戶變量。

遇到的錯誤和解決方案

如果遇到C2664錯誤提示:無法将參數 2 從“char *”轉換為“LPCWSTR” ,點擊決解方案中的項目屬性->常規->字符集,将“使用Unicode字符集”改成“使用多字節字符集”即可解決該報錯。

c的環境變量怎麼配置(CC實戰016)6

如果遇到C4996錯誤提示: This function or variable may be unsafe(此函數或變量可能不安全),我們可以在點擊決解方案中的項目屬性->C/C ->預處理器->預處理器定義中添加_CRT_SECURE_NO_WARNINGS定義即可。

c的環境變量怎麼配置(CC實戰016)7

更多C/C 實戰技巧可參考專欄:C/C 實戰系列


,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved