2016-09-03 26 views
0

最近Excel 1016、Excel2016にOffice365、vs2015コミュニティが追加された新しいPCにアップグレードされました。 defファイルにエクスポートされた関数が1つのみの非常に単純なvC++ dllを構築しました。コードは非常にシンプルですが、ここに投稿してコンテンツを提供し、そこに問題がないことを確認します。Excel 2016 VBAがvs2015を呼び出すのに失敗しました。C++ dll

//also tried __declspec(dllexport) double sumCPP(double a, double b) without .def file 
double __stdcall sumCPP(double a, double b) 
{ 
    return a + b; 
} 

'VBA 
Public Declare PtrSafe Function sumCpp Lib "C:\MyTestProject\x64\Debug\DllTest.dll" (ByVal a As Double, ByVal b As Double) As Double 

しかし、VBAからの呼び出しが実行時エラー '48' の結果:ファイルが見つかりません:C:\ MyTestProject \ x64の\デバッグ\ DllTest.dll。

より複雑なdllプロジェクトのソースコードは、正常に動作するexeファイルに作成できますが、dllはdllの問題を呼び出すこの元の失敗を促します。どのような提案を見るべきか?私は、多くのおそらく間違ったアラームとdumpbin /扶養家族とdepends.exeを試しましたが、結果を使用する方法を明確にしていません。私はこれがシステムPATHではなく再配布可能なvs2015に関連しているのだろうかと思います。私はそこには何も見ていないが、あまりにも多くあるように、まだそれらを追加しようとしていない。

vC++ dllを使用する以外に、重い計算とTCP/IPソケットを委譲する他のオプションはありますか?私は分かりませんが、C#を考えることができますが、Pythonが優先されます。これらのdll関数はVBAで何度も呼び出されることを意図しているので、vC++ exeへのシステムコールは効率的ではないようです。

事前に感謝します!

+0

1.テスト関数のシグネチャが異なるため、機械2.解除モードを開発3.Check上のdllこの:Excelはx64およびDLLですx86ですか?またはExcelがx86で、dllがx64ですか? – neohope

答えて

0

マシンは新品なので、すべてのデータを削除してリセットします。その後、Office 2016 64bitとVS Community 2015を一からインストールし、64bit dllを再構築しました。このエラーは、実行時エラー '453'です。DLLエントリポイントが見つかりません。 dumpbin.exe/dependentsまたはdepends.exeのいずれかによって明白な欠落しているdllを見つけることができません。 「リリース」に

0

「デバッグ」からトライ変更ビルド構成に

+0

また、SysWow64フォルダにvsruntime140.dllがあることを確認してください – user7856785

関連する問題