「const char*」は「文字のアドレス」を意味します。1 <= n < 7 の値を渡します。
キャストすることにより、有効な文字へのポインター値であると見なすようにコンパイラーに要求できます。
callAMethod(5, reinterpret_cast<const char*>(i));
ただし、アドレス「1」のメモリを読み取って char を検索しようとすると、アプリケーションがクラッシュする可能性があります。
あなたの「callAMethod」はCスタイルの文字列を期待しているようです。これは、文字列の終わりが値0の文字で示される任意の文字列です。
const char hello[6] = { 'h', 'e', 'l', 'l', 'o', 0 };
const char* hello = "hello"; と同等です。
(C/C++ のように引用符で囲まれた文字列を記述すると、コンパイラは格納された文字列の末尾に 0 バイトを自動的に追加します)。
通常、文字列を関数に渡す場合、フィンガープリントは「const char*」です。
したがって、実際に知りたいのは「長い値から文字列を作成する方法」であり、答えは「printf」です。
char str[20];
for (unsigned long i = 1; i < 7; ++i) {
#ifdef _MSC_VER
sprintf_f(str, "%u", i);
#else
snprintf(str, sizeof(str), "%u", i);
#endif
callAMethod(5, str);
}