- PR -

GetComputerNameExが未定義シンボルになるのはなぜ

1
投稿者投稿内容
かずぼん
会議室デビュー日: 2004/03/12
投稿数: 15
お住まい・勤務地: 東京都多摩地区
投稿日時: 2004-03-12 17:02
WinXP上でVC7で開発しています。
GetComputerNameExを使おうと思い、マニュアルを見て
下記のコードを書いたのですが、GetComputerNameExが未定義シンボル
になります。
_WIN32_WINNTが0x0500未満になっているようなのですが、VC6++と勝手が
違うので、直し方が不明です。
どなたかアドバイスをお願いします。

#include "windows.h"
#include "winbase.h"

BOOL bRtn;
_TCHAR szFullName[MAX_COMPUTERNAME_LENGTH+1];
DWORD nSize = MAX_COMPUTERNAME_LENGTH;

bRtn = GetComputerNameEx(ComputerNameDnsFullyQualified,
(LPTSTR)szFullName, (LPDWORD)&nSize);
if ( bRtn ) {
m_mess1 = szFullName;
}
masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2004-03-12 17:29
#ifndef WINVER
#define WINVER 0x0500
#endif

#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500
#endif
を入れてみたらちゃんと動きました。MFC,NoMFC(Console)ともにOKです。
かずぼん
会議室デビュー日: 2004/03/12
投稿数: 15
お住まい・勤務地: 東京都多摩地区
投稿日時: 2004-03-13 20:24
元記事のかずぼんです。
プロジェクトのプロパティを開いて、C++プリプロセッサに上記設定を追加し、
リンカ追加モジュールにkernel32.libを追加したら、makeできました。

入力フォーカスがエディタにあると、プロジェクトのプロパティって表示されないんですね。
4年ぶりに新規プロジェクトを起こしたので、VSの使い方を何にも覚えていませんでした。
お騒がせしました。
1

スキルアップ/キャリアアップ(JOB@IT)