WinAPI の CreateFile 関数を使用して単純な TXT を作成する次のコードがあります。
#include <stdio.h>
#include <windows.h>
#include <Wincrypt.h>
#include <string.h>
#include <tchar.h>
#include <strsafe.h>
#include <iostream>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
LPCTSTR lpFileName = L"C:\\MyTest.txt";
DWORD dwDesiredAccess = GENERIC_READ | GENERIC_WRITE;
DWORD dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL;
DWORD dwCreationDisposition = CREATE_NEW;
DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL;
HANDLE hTemplateFile = NULL;
HANDLE C=CreateFile(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes,
dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
DWORD Er=GetLastError();
char *pMsg = NULL;
FormatMessageW(
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL,
Er,
LANG_SYSTEM_DEFAULT,
(LPWSTR)&pMsg,
0,
NULL
);
if (C != INVALID_HANDLE_VALUE)
{
MessageBox(NULL, (LPCTSTR)pMsg, L"Explorando la API", MB_ICONINFORMATION);
}
else
{
MessageBox(NULL, (LPCTSTR)pMsg, L"Explorando la API", MB_ICONINFORMATION);
}
CloseHandle(C);
}
StringCchCat
問題は、関数を使用してカスタマイズされた文字列を lpFile 名に渡すにはどうすればよいかということです。
(RegQueryValue を使用して) レジストリ キーから任意の番号を読み取り、ファイルに名前を付けたいと思います。たとえば、DemoValue から "1" を読み取った場合、TXT 名は MyText1.txt または MyText(1).txt になります。
手伝って頂けますか?ありがとう!