いろいろやってみて
Microsoft Visual Studio Express 2017 for Windows Desktop でDLL作成したらそれを使う際に注意があった。
具体的には「呼び出し規約」の設定である。
Visual C++で呼び合っている間にはあまり気にしていない。
標準的にdllを作ると呼び出し規約__cdeclなのかな
ただし,Windows APIなどは__stdcallなので,ここで作ったdllの関数は例えば.NETからDllImportで使う場合 呼び出し規約に合わせて設定を調整する必要がある。
__stdcallなら標準的に呼び出せるので__stdcallの方がよいかもしれない。
プロジェクトのプロパティから設定してもよいが,戻り値の型指定の後に__stdcallまたは__cdeclを書いた方がよいかもしれない。
プロジェクトのプロパティを設定するのは,別に間違いではない。ただ,自分で使う分には問題ないが,DLLを他の人が使うときにヘッダファイルに__stdcall/__cdeclを書いていないと呼び出し規約を特定する必要が出てしまう。
といってもx64では__stdcallなど無視されるらしい。