実行時に利用できるいくつかのドキュメントを含む小さなライブラリがありますが、MS Visual Studio C++ コンパイラでは最大2,048 バイトの長さの文字列リテラルしか許可されていません。この制限を回避する簡単な方法はありますか? 私が見つけた唯一の解決策は、文字列配列を作成し、新しいバッファを割り当てて文字列をコピーすることでした。
char *doc_arr[] = {
"Documentation for my program\n",
"\n",
"This is a seccond line\n",
// and so on ....
}
int doc_arr_length = 203; // number lines in doc_arr
char doc[3502]; // number of bytes in dockumentation
strcpy(doc, doc_arr[0]);
for(int i = 1; i < doc_arr_length; i++){
strcat(doc, doc_arr[i]);
}
更新: いくつかのコンテキストが必要なようです。
多くのオプションを取り、多くのデータを収集して .c ファイルを生成する ruby プログラムがあります。.c ファイルは .dll ウィッチにコンパイルされ、高速計算のために他のプログラムで使用されます。これは、さまざまな .c および .dll がすぐに取得され、バージョンの管理が難しくなることを意味します。ソースファイルとコンパイルされた dll に ruby スクリプトに与えられたオプションに関する合成ドキュメントを含めることをお勧めします。