⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_46312.htm

📁 vc
💻 HTM
字号:
<p>
序号:46312 发表者:counter-bug 发表日期:2003-07-08 18:18:30
<br>主题:GetComputerName无法获取计算机名?
<br>内容:我用GetComputerName去获得本地计算机名,结果不成功。<BR>用GetLastError 得到的结果为111 (ERROR_BUFFER_OVERFLOW)<BR>原以为是传入的buffer不够大,改为1024还是不行,后来看MSDN,上面说buffer空间不足时返回的是ERROR_MORE_DATA.那么ERROR_BUFFER_OVERFLOW是怎么回事呢?<BR>现在我只好用gethostname来获得计算机名,但我程序中没有任何和网络有关的,所以不想用这个函数(因为用它要WSAStartup,WSACleanup,有点麻烦)。还有其它的函数能获得计算机名的吗?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Solon 回复日期:2003-07-08 18:39:49
<br>内容:这问题以前遇过。主要是GetComputerName的使用。<BR>这样就可以了。<BR>unsigned long Size = MAX_COMPUTERNAME_LENGTH + 1;<BR>char *Buffer = new char[Size];<BR>GetComputerName(Buffer, &amp;Size);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:金枪鱼 回复日期:2003-07-08 21:51:00
<br>内容:(目前)计算机名称最多为15位的字符,并且不能使用空格和一些特殊字符<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;TCHAR nComputerName[16];<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD nL=16;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(!GetComputerName(nComputerName,&amp;nL))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString strComputerName=CString(nComputerName);<BR><BR>我使用这种方式已经有一段时间了,似乎没有出现错误。要不,不放心的话,将16改为256。<BR><BR>如果你使用MAX_COMPUTERNAME_LENGTH也可以,但1楼使用了new分配内存,别完了要销毁,否则内存泄漏。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:counter-bug 回复日期:2003-07-09 09:21:47
<br>内容:谢谢各位,找到问题所在了。<BR>我原来是这样做的,在上面还有一个<BR>char str[256] ;<BR>int nLength = 256 ;<BR>GetUserName(str,&amp;nLength);<BR>然后又<BR>GetComputerName(str,&amp;nLength);<BR><BR>呵呵,没注意nLength 是个返回值,@@<BR>当GetUserName nLength 已经变掉了,所以不会成功<BR>Solon 说得很对,MSDN上也说Windows 95/98/Me 下size要大于MAX_COMPUTERNAME_LENGTH + 1。但我现在有的时2000。<BR><BR>很感谢两位,但分只能给一个人(为什么不能把分分这给?@@)。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Solon 回复日期:2003-07-10 12:26:22
<br>内容:呵呵~没什么,能解决问题就可以了,以后小弟还要向各位学习。<BR>金枪鱼大哥说得对,“使用了new分配内存,别完了要销毁,否则内存泄漏。”以后写程序会小心点了。:)<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -