私は C++ の初心者ですが、学びたいと思っています。\etc\hosts
Windows で情報を書き込む小さなプログラムがあります。%WINDIR%
を介して変数を取得しますGetEnvironmentVariable()
。完全なパスを手動で入力するとすべて問題ありませんが、変数に置き換えるとWINDIR
コードがコンパイルされません。私は正しいことをしていないことを知っています。
#include <windows.h>
#include <ios>
#include <fstream>
char buffer[1000];
int main() {
GetEnvironmentVariable("WINDIR",(char*)&buffer,sizeof(buffer));
std::ofstream log;
log.open("%s\\system32\\drivers\\etc\\hosts", buffer);
log << "127.0.0.1 domain.com\n" << std::endl;
return 0;
}
次のような本当に醜いエラーが発生します。
C:\Documents and Settings\xtmtrx\Desktop\coding\windir.cpp `
std::basic_ofstream<char, std::char_traits<char> >::open(const char[30], char[1000])
' の呼び出しに一致する関数がありません