VB/Excel から実行され、途中で C++ プログラムを実行するプログラムがあります。2 つの (関連していると思われる) 質問があります。
実行時に C++ プログラムからの戻り値をキャプチャしますが、取得する数値はゼロではありません (代わりに 4 桁の整数値です。受信したサンプル値は 8156、5844、6100、5528 です)。プログラムはコード 0 で正常に終了することは確かですが、C++ プログラムが実行を完了する前に VB がその値を取得していると思います。私のC++プログラムからの戻り値?
[おそらく #1 の解決策として] C++ モデルの実行が完了するまで VB プログラムを「一時停止」するにはどうすればよいですか? モデルが完成したら、追加の VB 作業 (C++ モデルの実行に基づく出力構成) を行う必要があります。
モデルの呼び出し方法に関する私の VB コードを次に示します。Windows シェルを介して完全にコンパイルされた C++ プログラムを実行しています。
'---------------------------------------------------------
' SECTION III - RUN THE MODEL AS C++ EXECUTABLE
'---------------------------------------------------------
Dim ModelDirectoryPath As String
Dim ModelExecutableName As String
Dim ModelFullString As String
Dim ret As Long
ModelDirectoryPath = Range("ModelFilePath").value
ModelExecutableName = Range("ModelFileName").value
ModelFullString = ModelDirectoryPath & ModelExecutableName
' Call the model to run
Application.StatusBar = "Running C Model..."
ModelFullString = ModelFullString & " " & ScenarioCounter & " " & NumDeals _
& " " & ModelRunTimeStamp
ret = Shell(ModelFullString)
' Add error checking based on return value
' This is where I want to do some checks on the return value and then start more VB code