FormatMessage例程

来源:互联网 发布:淘宝重复开店2016处罚 编辑:程序博客网 时间:2024/05/20 07:49
[DllImport("kernel32.dll")]private unsafe static extern int FormatMessage(uint dwFlags, // source and processing optionsint* lpSource, // message sourceuint dwMessageId, // message identifieruint dwLanguageId, // language identifierchar* MsgBuffer, // message bufferint nSize, // maximum size of message bufferbyte[] Arguments // array of message inserts);[DllImport("kernel32.dll")]private unsafe static extern int* LoadLibraryEx(string lpFileName, // file name of moduleint[] hFile, // reserved, must be NULLuint dwFlags // entry-point execution option);public unsafe string GetMessage(int LastErr){uint dwLastError = (uint)LastErr;int* hModule = null; // default to system sourcechar* MessageBuffer = null;int dwBufferLength;string sMsg = "";uint dwFormatFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_IGNORE_INSERTS |FORMAT_MESSAGE_FROM_SYSTEM ;//// If dwLastError is in the network range,// load the message source.//if(dwLastError >= NERR_BASE && dwLastError <= MAX_NERR){hModule = LoadLibraryEx("netmsg.dll", null, LOAD_LIBRARY_AS_DATAFILE);if(null != hModule)dwFormatFlags |= FORMAT_MESSAGE_FROM_HMODULE;}//// Call FormatMessage() to allow for message// text to be acquired from the system// or from the supplied module handle.//dwBufferLength = FormatMessage(dwFormatFlags,hModule, // module to get message from (NULL == system)dwLastError,LANGID, // default languageMessageBuffer,0,null);// if(0 != dwBufferLength)// sMsg = (string) *MessageBuffer;return sMsg;}}


转自:http://www.dotnet247.com/247reference/msgs/10/52398.aspx

原创粉丝点击