c++
// 没有盘符,为相对路径 strDllPath.Trim(_T("\\")); strDllPath = CEnvironment::ConfigAppDir()+strDllPath;c#
String strDir = Environment.CommandLine.Substring(0, Environment.CommandLine.LastIndexOf(@"\XQ-4."));或者Environment.CurrentDirectory // 当操作中途有使用文件打开对话框的情况时,该函数可能会发生变化
《Environment.h》
#pragma once
class CEnvironment{ public: CEnvironment(void); ~CEnvironment(void); static CString ConfigAppDir(void); static int Init(void); static CString m_AppPath; static CString m_AppDriver; static CString m_AppDir; static CString m_AppFileName; static CString m_AppFileExt;static void OutputMsg01(CString tag , CString str , BOOL clean);
};《Environment.cpp》
#include "StdAfx.h"
#include "Environment.h"CString CEnvironment::m_AppPath = _T("");
CString CEnvironment::m_AppDriver = _T("");CString CEnvironment::m_AppDir = _T("");CString CEnvironment::m_AppFileName = _T("");CString CEnvironment::m_AppFileExt = _T("");CEnvironment::CEnvironment(void)
{ } CEnvironment::~CEnvironment(void){ } int CEnvironment::Init(void){ if (_T("")!=m_AppDriver) return 0;TCHAR path[MAX_PATH];
memset(path,0,sizeof(TCHAR)*MAX_PATH); GetModuleFileName( NULL,path, MAX_PATH ); TCHAR drive[MAX_PATH],dir[MAX_PATH],fname[MAX_PATH],ext[MAX_PATH]; _tsplitpath(path,drive,dir,fname,ext );m_AppDriver = drive;
m_AppDir = dir; m_AppFileName = fname; m_AppFileExt = ext; //m_AppPath = drive;return 1;
}CString CEnvironment::ConfigAppDir(void)
{ Init(); return m_AppDriver+m_AppDir; //m_AppPath = drive; //m_AppPath += dir;} void CEnvironment::OutputMsg01(CString tag , CString str , BOOL clean){ CString strFilePath = _T("c:\\output111.txt"); CStdioFile file; BOOL res = FALSE; if (clean) { res = file.Open(strFilePath, CFile::modeCreate|CFile::modeReadWrite); } else { res = file.Open(strFilePath, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); }if (res)
{ if (!clean) { file.SeekToEnd(); }if (_T("")!=tag)
{ file.WriteString(tag); file.WriteString(_T("\r\n")); }if (_T("")!=str)
{ file.WriteString(str); file.WriteString(_T("\r\n")); }file.Close();
}}