4

大きな問題があり、それを修正する方法がわかりません...

非常に長い Base64 でエンコードされた文字列 (980.000 文字) をデコードしたいのですが、デバッグするたびに次のエラーが発生します。

エラー C2026: 文字列が大きすぎて、末尾の文字が切り捨てられました

これを試しましたが、この方法で2つの文字列しか比較できません

char* toHash1 = "LONG BASE 64 Code";
char* toHash2 = "LONG BASE 64 Code";

if (true) {
  sprintf_s(output, outputSize, "%s", base64_decode(toHash1 =+ toHash2).c_str());
}

どうすれば動作させることができるか知っている人はいますか?

4

2 に答える 2

4

ここに記載されているように、MSVC を使用する場合、文字列リテラルには約 2048 文字しか使用できません。連結で最大65535文字まで取得できますが、これでも短すぎるため、ここでは文字列リテラルを使用できません。

1 つの解決策は、文字列をファイルから割り当てられたcharバッファに読み込むことです。私は gcc と clang のそのような制限を知らないので、MSVC の代わりにそれらを使用しようとすると、これも解決される可能性があります。

于 2015-04-30T13:34:55.580 に答える