亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? easysysdlg.cpp

?? EasySYS一鍵建立VC+DDK的驅動開發環境的源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
{
	CString strDDKEnvironmentName = m_strDDKVer + _T("BASE");
	BOOL bRet = FALSE;
	//set user's ddk Environment
	HKEY hKeyEnvironment;
	DWORD dwType = REG_SZ;
	if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, ENVIRONMENT_PATH_USER, 0, KEY_WRITE, &hKeyEnvironment))
	{
		if ( ERROR_SUCCESS == RegSetValueEx(hKeyEnvironment,strDDKEnvironmentName,0,dwType,(LPBYTE)strDDKEnvironmentValue.GetBuffer(0),strDDKEnvironmentValue.GetLength()) )
		{
			bRet = TRUE;
			::SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("environment"));
		}
		RegCloseKey(hKeyEnvironment);
	}
	return bRet;
}

int CEasySYSDlg::CreateProject()
{
	CString strPrjBaseDir = m_strPrjPath;
	if ( strPrjBaseDir.Right(1) !=  _T("\\") )
	{
		strPrjBaseDir +=  _T("\\");
	}
	strPrjBaseDir += m_strPrjName;
	if (!CreateDirectory(strPrjBaseDir, NULL))
	{
		if (ERROR_ALREADY_EXISTS != GetLastError())
		{
			MessageBox(_T("Can not create project directory."),
				DIALOG_CAPTION, MB_ICONSTOP);
			return -1;
		}
	}
	strPrjBaseDir += _T("\\");

	// upper case project name
	CString strProjectNameU = m_strPrjName;
	strProjectNameU.MakeUpper();

	// upper case first character of project name, not needed?
	CString strProjectNameA = m_strPrjName;
	strProjectNameA.MakeLower();
	strProjectNameA.SetAt(0, toupper(m_strPrjName[0]));

	// frist create .dsw
	CString strDSWFileName = strPrjBaseDir + m_strPrjName;
	strDSWFileName += _T(".dsw");
	
	CFileFind fFind;
	if (fFind.FindFile(strDSWFileName))
	{
		// project already exist
		DWORD ret = MessageBox(_T("Project files already exist, overwrite?"),
			DIALOG_CAPTION, MB_YESNO|MB_ICONQUESTION);
		if ( ret == IDNO )
		{
			return -3;
		}
	}

	CFile file;
	CString strDSWFileContent = LoadText(MAKEINTRESOURCE(IDR_DSW));

	strDSWFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	if (!file.Open(strDSWFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}
	file.Write(strDSWFileContent, (strDSWFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	/*
	// get softice installed directory
	CString strNMsym = GetSoftICEInstallDir();
	if ( !strNMsym.IsEmpty() )
	{
		if ( strNMsym.Right(1) != "\\" ) strNMsym += "\\";
		strNMsym += "nmsym.exe";
	}
	strNMsym = "$(DRIVERWORKS)\\bin\\nmsym.exe";
	*/

	// 2nd, create .dsp
	int iProjectCount = 0;
	CString strDSPFileName = strPrjBaseDir + m_strPrjName;
	strDSPFileName += _T(".dsp");
	
	if (!file.Open(strDSPFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}
	CString strDSPFileContent;
	strDSPFileContent = LoadText(MAKEINTRESOURCE(IDR_DSP));
	CString strProjectConfigNames;
	CString strProjectConfigs;
	CString strProjectConfigName2s;

	int nIndex;
	int i = 0;
	//count for the project,  it's useful in the first project and last project
	while( (nIndex = GetCheckItem(TARGET_OS, i)) != -1)
	{
		iProjectCount++;
		//create $(PROJECT_CONFIG_NAME) in dsp
		CString strProjectConfigName = LoadText(MAKEINTRESOURCE(IDR_DSP_PROJECT_CONFIG_NAME));
		strProjectConfigName.Replace(_T("$(TARGET_OS)"), g_options[nIndex].szInter);
		strProjectConfigNames += strProjectConfigName;

		//create $(PROJECT_CONFIG) in dsp
		CString strProjectConfig = LoadText(MAKEINTRESOURCE(IDR_DSP_PROJECT_CONFIG));
		strProjectConfig.Replace(_T("$(TARGET_OS)"), g_options[nIndex].szInter);
		
		//when the ddk is same as target os, such as WNETWNET, convert to WNET
		if (m_strDDKVer.CollateNoCase(g_options[nIndex].szInter) == 0)
		{
			strProjectConfig.Replace(_T("$(DDK_VER)"), _T(""));
		}
		else
		{
			strProjectConfig.Replace(_T("$(DDK_VER)"), m_strDDKVer);
		}
		
		if (iProjectCount == 1)
		{
			strProjectConfig.Replace(_T("$(IF_FLAG)"), _T("!IF"));
			strDSPFileContent.Replace(_T("$(DEFAULT_TARGET_OS)"), g_options[nIndex].szInter);
		}
		else
		{
			strProjectConfig.Replace(_T("$(IF_FLAG)"), _T("!ELSEIF"));
		}
		if (iProjectCount == m_nTosNum)
		{
			strProjectConfig.Replace(_T("$(ENDIF_FLAG)"), _T("!ENDIF"));
		}
		else
		{
			strProjectConfig.Replace(_T("$(ENDIF_FLAG)"), _T(""));
		}
		strProjectConfigs += strProjectConfig;
		
		//create $(PROJECT_CONFIG_NAME_2)
		CString strProjectConfigName2 =  LoadText(MAKEINTRESOURCE(IDR_DSP_PROJECT_CONFIG_NAME_2));
		strProjectConfigName2.Replace(_T("$(TARGET_OS)"), g_options[nIndex].szInter);
		strProjectConfigName2s += strProjectConfigName2;

		//
		i++;

	}
	strDSPFileContent.Replace(_T("$(PROJECT_CONFIG_NAME)"), strProjectConfigNames);
	strDSPFileContent.Replace(_T("$(PROJECT_CONFIG)"), strProjectConfigs);
	strDSPFileContent.Replace(_T("$(PROJECT_CONFIG_NAME_2)"), strProjectConfigName2s);
	//ReplaceInString(strDSPFileContent, "$(SOFTICE_FILE_PATH)", strNMsym);
	strDSPFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);

	file.Write(strDSPFileContent, (strDSPFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();
	
	
	// 3rd, create .c file
	CString strCFileName = strPrjBaseDir + m_strPrjName;
	strCFileName += _T(".c");
	if (!file.Open(strCFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}

	CString strCFileContent;
	strCFileContent = LoadText(MAKEINTRESOURCE(IDR_CFILE));
	strCFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	strCFileContent.Replace(_T("$(PROJECT_NAME_U)"), strProjectNameU);
	strCFileContent.Replace(_T("$(PROJECT_NAME_A)"), strProjectNameA);
	
	file.Write(strCFileContent, (strCFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	// 4th, create .h file
	CString strHFileName = strPrjBaseDir + m_strPrjName;
	strHFileName += _T(".h");
	if (!file.Open(strHFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}

	CString strHFileContent;
	strHFileContent = LoadText(MAKEINTRESOURCE(IDR_HFILE));
	strHFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	strHFileContent.Replace(_T("$(PROJECT_NAME_U)"), strProjectNameU);
	strCFileContent.Replace(_T("$(PROJECT_NAME_A)"), strProjectNameA);
	
	file.Write(strHFileContent, (strHFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	// 5th, create readme.txt
	CString strReadmeFileName = strPrjBaseDir + _T("readme.txt");
	if (!file.Open(strReadmeFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}

	CString strReadmeFileContent;
	strReadmeFileContent = LoadText(MAKEINTRESOURCE(IDR_README));
	strReadmeFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	strReadmeFileContent.Replace(_T("$(PROJECT_NAME_U)"), strProjectNameU);
	
	file.Write(strReadmeFileContent, (strReadmeFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	// 6th, create recoures
	CString strSourcesFileName = strPrjBaseDir + _T("sources");
	if (!file.Open(strSourcesFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}

	CString strSourcesFileContent;
	strSourcesFileContent = LoadText(MAKEINTRESOURCE(IDR_SOURCES));
	strSourcesFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	
	file.Write(strSourcesFileContent, (strSourcesFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();
	
	// 7th, create makefile
	CString strMakefileFileName = strPrjBaseDir + _T("makefile");
	if (!file.Open(strMakefileFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}

	CString strMakefileFileContent;
	strMakefileFileContent = LoadText(MAKEINTRESOURCE(IDR_MAKEFILE));
	strMakefileFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	
	file.Write(strMakefileFileContent, (strMakefileFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	// 8th, create ddkbuild.bat
	CString strDDKBuildFileName = strPrjBaseDir + _T("ddkbuild.bat");
	if (!file.Open(strDDKBuildFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}
	
	CString strDDKBuildFileContent;
	strDDKBuildFileContent = LoadText(MAKEINTRESOURCE(IDR_DDKBUILD_BAT));
	strDDKBuildFileContent.Replace(_T("$(PROJECT_NAME)"), m_strPrjName);
	
	file.Write(strDDKBuildFileContent, (strDDKBuildFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	// 9th, create dbghelp.h file
	strHFileName = strPrjBaseDir + _T("dbghelp.h");
	if (!file.Open(strHFileName, CFile::modeCreate | CFile::modeWrite))
	{
		return -2;
	}
	

	strHFileContent = LoadText(MAKEINTRESOURCE(IDR_DBGHELP_H_FILE));
	
	file.Write(strHFileContent, (strHFileContent.GetLength() ) * sizeof(TCHAR));
	file.Close();

	return 0;
}

CString LoadText(LPCTSTR lpName)
{
	CString strText;
	HRSRC hRsrc;
	
	hRsrc = FindResource(AfxGetInstanceHandle(), lpName, RT_HTML);
	HGLOBAL hMem = LoadResource(AfxGetInstanceHandle(), hRsrc);
	DWORD dwSize = SizeofResource(AfxGetInstanceHandle(), hRsrc);
	TCHAR *src = (TCHAR*)LockResource(hMem);
	strText.Format(_T("%s"),src);
	return strText;
}

BOOL CEasySYSDlg::SavePathToReg()
{
	BOOL bRet = FALSE;
	HKEY hkey;
	DWORD dwDisposition;
	if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER, CONFIG_PATH, NULL, NULL, REG_OPTION_NON_VOLATILE, 
				KEY_ALL_ACCESS, NULL, &hkey, &dwDisposition))
	{
		DWORD dwType = REG_SZ;
		//save value
		if ( ERROR_SUCCESS == RegSetValueEx(hkey,CONFIG_NAME_LOCATION,NULL,dwType,(const BYTE *)m_strPrjPath.GetBuffer(0),m_strPrjPath.GetLength()) )
		{
			bRet = TRUE;
		}
		RegCloseKey(hkey);
	}
	return bRet;

}

BOOL CEasySYSDlg::ReadPathFromReg()
{
	BOOL bRet = FALSE;
	HKEY hkey;
	if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, CONFIG_PATH, NULL, KEY_QUERY_VALUE, &hkey))
	{
		DWORD dwType = REG_SZ;
		BYTE bufLocation[MAX_PATH];
		DWORD dwBufLen = MAX_PATH;
		//save value
		if (ERROR_SUCCESS == RegQueryValueEx(hkey,CONFIG_NAME_LOCATION,NULL,&dwType,(LPBYTE)bufLocation,&dwBufLen))
		{
			bRet = TRUE;
			m_strPrjPath = bufLocation;
		}
		RegCloseKey(hkey);
	}
	return bRet;
}

void CEasySYSDlg::OnSelchangeDdkVersion() 
{
	// TODO: Add your control notification handler code here
	int nIndex = ((CComboBox *)GetDlgItem(IDC_DDK_VERSION))->GetCurSel();
	int nOptionID = ((CComboBox *)GetDlgItem(IDC_DDK_VERSION))->GetItemData(nIndex);
	
	if (nOptionID == DDK_W2K)
	{
		((CButton*)GetDlgItem(IDC_TOS_W2K))->SetCheck(1);
		((CButton*)GetDlgItem(IDC_TOS_WXP))->EnableWindow(FALSE);
		((CButton*)GetDlgItem(IDC_TOS_W2K3))->EnableWindow(FALSE);
	}
	else if(nOptionID == DDK_WXP)
	{
		((CButton*)GetDlgItem(IDC_TOS_WXP))->EnableWindow(TRUE);
		((CButton*)GetDlgItem(IDC_TOS_W2K3))->EnableWindow(FALSE);
	}
	else if (nOptionID == DDK_W2K3)
	{
		((CButton*)GetDlgItem(IDC_TOS_WXP))->EnableWindow(TRUE);
		((CButton*)GetDlgItem(IDC_TOS_W2K3))->EnableWindow(TRUE);
	}
}

int CEasySYSDlg::GetDDKLoaction(CString &strDDKLocation)
{
	HKEY hKey;
	DWORD dwIndex = 0;
	if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, WINDDK_PATH, 0, KEY_ENUMERATE_SUB_KEYS, &hKey))
	{
		TCHAR bufName[MAX_PATH];
		while(RegEnumKey(hKey,dwIndex,bufName,MAX_PATH) != ERROR_NO_MORE_ITEMS)
		{
			HKEY hSubKey;
			if (ERROR_SUCCESS == RegOpenKeyEx(hKey, bufName, 0, KEY_READ, &hSubKey))
			{
				DWORD dwType = REG_SZ;
				DWORD dwBufLen = MAX_PATH;
				TCHAR bufDDKPath[MAX_PATH];
				if (ERROR_SUCCESS == RegQueryValueEx(hSubKey,_T("LFNDirectory"),NULL,&dwType,(LPBYTE)bufDDKPath,&dwBufLen))
				{
					strDDKLocation = bufDDKPath;
				}
				RegCloseKey(hSubKey);
			}
			dwIndex++;
		}
		RegCloseKey(hKey);
	}
	return dwIndex;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲bt欧美bt精品| 国产人成亚洲第一网站在线播放| 国产精品久久久久久久岛一牛影视| 国产成人av福利| 日本一区二区高清| 成人av午夜电影| 亚洲精品v日韩精品| 欧美色图12p| 美女高潮久久久| 久久久综合九色合综国产精品| 国产v综合v亚洲欧| 中文字幕一区在线观看视频| 91色婷婷久久久久合中文| 亚洲大型综合色站| 日韩精品中文字幕一区二区三区| 国产一本一道久久香蕉| 亚洲天堂精品视频| 欧美精品久久久久久久多人混战 | 久久在线观看免费| 国产成人精品aa毛片| 亚洲精品视频在线看| 9191久久久久久久久久久| 久久精品理论片| 国产精品成人在线观看| 欧美日韩一二三| 国产乱码精品一区二区三区忘忧草 | 欧美国产日韩精品免费观看| 91丨九色丨尤物| 蜜桃视频一区二区三区在线观看| 久久先锋资源网| 欧美视频一区二区三区四区 | 亚洲另类在线制服丝袜| 欧美精选一区二区| 国产福利精品一区二区| 一区二区在线电影| 久久久亚洲精品石原莉奈| 在线精品国精品国产尤物884a| 久久精品二区亚洲w码| 亚洲色图19p| 精品久久久影院| 91国内精品野花午夜精品| 久久精品99久久久| 亚洲网友自拍偷拍| 中文字幕精品一区二区三区精品| 欧美日韩另类一区| 成人国产精品视频| 麻豆国产精品官网| 亚洲午夜免费福利视频| 欧美国产亚洲另类动漫| 日韩精品中文字幕在线一区| 欧洲亚洲精品在线| 成人晚上爱看视频| 国产在线不卡一区| 青青草国产精品亚洲专区无| 亚洲精品国产高清久久伦理二区| 久久久亚洲高清| 日韩手机在线导航| 欧美午夜一区二区三区免费大片| 成人av资源在线观看| 国产真实精品久久二三区| 日韩电影一区二区三区| 亚洲午夜一区二区| 亚洲乱码中文字幕| 日韩美女久久久| 国产精品久久久久久亚洲毛片| 久久久综合精品| 久久亚洲精精品中文字幕早川悠里| 91精品国产综合久久香蕉麻豆| 在线中文字幕一区二区| jlzzjlzz欧美大全| 成人黄页毛片网站| 成人教育av在线| 成人黄动漫网站免费app| 国产美女精品一区二区三区| 久久66热偷产精品| 开心九九激情九九欧美日韩精美视频电影| 亚洲一区二区精品3399| 亚洲一区中文日韩| 亚洲国产aⅴ成人精品无吗| 亚洲一区免费观看| 亚洲一二三四久久| 亚洲r级在线视频| 亚洲电影欧美电影有声小说| 亚洲国产综合人成综合网站| 亚洲一区二区三区四区在线观看| 一区二区三区欧美| 亚洲不卡av一区二区三区| 香蕉加勒比综合久久| 午夜激情久久久| 奇米精品一区二区三区在线观看| 日韩中文欧美在线| 精品在线免费观看| 国产成人在线观看免费网站| 成人永久免费视频| 91在线观看成人| 欧美图区在线视频| 欧美一区二区三区免费大片 | 亚洲乱码中文字幕综合| 亚洲一级电影视频| 免费观看久久久4p| 国产高清在线观看免费不卡| 成人丝袜高跟foot| 在线一区二区观看| 日韩欧美的一区二区| 国产亚洲一区二区三区四区| 亚洲欧美在线视频| 性做久久久久久免费观看| 韩国三级在线一区| 99久久er热在这里只有精品15| 欧美日韩中文一区| 久久―日本道色综合久久| 亚洲视频在线一区观看| 五月天婷婷综合| 国产馆精品极品| 欧美日韩国产乱码电影| 欧美成人一区二区三区片免费| 国产精品午夜久久| 天堂影院一区二区| 成人久久久精品乱码一区二区三区| 在线亚洲一区二区| 久久综合久久鬼色| 一区二区三区不卡在线观看| 久久66热re国产| 在线精品视频一区二区三四| www国产成人免费观看视频 深夜成人网| 国产精品网友自拍| 免费欧美日韩国产三级电影| www.日本不卡| 精品精品国产高清a毛片牛牛| 亚洲视频免费观看| 黑人巨大精品欧美黑白配亚洲| 91蜜桃免费观看视频| 精品国产人成亚洲区| 一区二区三区波多野结衣在线观看 | 亚洲国产色一区| 丁香婷婷综合激情五月色| 欧美另类久久久品| 亚洲欧美自拍偷拍| 精品一区二区三区在线播放视频| 在线观看欧美精品| 国产精品每日更新在线播放网址| 日本特黄久久久高潮| 91高清在线观看| 国产精品久久久久久久久免费樱桃| 午夜精品久久久久久久99樱桃| 色综合久久久久综合| 亚洲国产精品精华液2区45| 日本在线不卡视频一二三区| 色婷婷久久99综合精品jk白丝| 久久精品网站免费观看| 美国毛片一区二区| 欧美日韩一区三区四区| 亚洲女人的天堂| 成人免费视频视频| 久久久精品免费网站| 蜜臀av在线播放一区二区三区 | 国产成人在线观看免费网站| 日韩一级黄色大片| 日韩精品成人一区二区三区| 在线观看视频一区二区| 亚洲欧洲制服丝袜| 99精品视频在线观看免费| 国产欧美一区二区三区在线看蜜臀 | 国产欧美日韩在线| 国内成人自拍视频| 久久久不卡网国产精品一区| 九一久久久久久| 精品三级av在线| 精品午夜久久福利影院| 精品盗摄一区二区三区| 久久99精品久久久久久动态图| 日韩欧美一级在线播放| 老色鬼精品视频在线观看播放| 日韩亚洲欧美综合| 久久国产精品第一页| 精品国产凹凸成av人导航| 精品一二三四区| 2020国产精品| 丁香婷婷综合五月| 亚洲天堂久久久久久久| 在线观看日韩电影| 日产精品久久久久久久性色| 欧美一个色资源| 精品在线视频一区| 欧美国产禁国产网站cc| 99国产精品视频免费观看| 亚洲人成影院在线观看| 欧美少妇xxx| 久久精品72免费观看| 久久久久久久综合日本| 99视频一区二区| 夜夜嗨av一区二区三区网页| 欧美丰满少妇xxxbbb| 国模少妇一区二区三区| 国产精品素人一区二区| 在线亚洲一区二区| 久久国产精品一区二区| 国产午夜精品久久久久久免费视 | 日韩亚洲欧美一区| 国产成人综合在线|