プロジェクト全体で使用される共通の定数の束を格納するヘッダーを作成しました。C++ regsvrが静的const宣言の関数呼び出しでスタックする
static const double MY_CONST = FOO();
問題がREGSVRが私の新しいファイルで立ち往生ということである:彼らはこのようになります。 regsvrへのデバッグ後、この行にはまっているようです。 regsvrプロセスを終了した後、私はプログラムを実行し、それを実行することができます。しかし、これは明らかに配信時に正常に登録する必要があるため、今後の課題となります。これらのファイルのそれぞれには、static const double
という定義がたくさんあるわけではありません。これを回避する方法はありますか?私は仕事にそれを得るように見えることはできませんしかし、私が持っていたアイデアはstatic const double
#define MY_CONST (double)[]({ static const double test = FOO(); return test; })
を返すラムダある#define
方法でした。助言がありますか?
'FOO()'何をしますか? DLLローディング時に呼び出すことを覚えておいてください(すべてのソースが 'MY_CONST'の別個のコピーを取得するので)。このヘッダを含むすべてのソースファイルに対して、DLLロード時に呼び出すことになります(これは' regsvr32'と一緒に使用されるため、 –