実現したいこと
C++で作成したDLLをVB.netで動かしたいと考えています。(64bit環境)
DLLの作成には成功しました。
しかし作成したdllファイルとlibファイルをVB.netで作成したexeファイル内に移動して動かすと下記のエラーとなります。
調べたところx86やAnyCPUなどの64bit対応でないdllを読み込もうとした際に出るエラーと言うのが見つかりました。
しかし、VSの構成マネージャのプラットフォームでは共にx64を選択しビルドしています。
defファイルも作成しています。
エラーの発生原因と解決方法を教えていただきたいです。
発生している問題・エラーメッセージ
追加情報:DLL 'Dlltest.dll' を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E)
該当のソースコード
生成されるファイル名:Dlltest.dll
C++
1#include "pch.h" 2#include "Dlltest.h" 3#include <iostream> 4 5int testVBnet(int test) 6{ 7 return (test + 8); 8}
defファイル
C++
1LIBRARY Dlltest 2 3EXPORTS 4 testVBnet
VBnet
1Public Class Form1 2 3 Public Declare Function testVBnet Lib "Dlltest.dll" (ByRef argv As Integer) As Integer 4 5 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 6 Dim DllData As Integer 7 8 DllData = Integer.Parse(TextBox1.Text) 9 TextBox2.Text = testVBnet(DllData) 10 11 End Sub 12End Class
試したこと
dllの作成が間違っているのかと考えビルドしたdllファイルをVS2015の開発者コマンドで
dumpbin /exports
を使用して確認したところ作成した「testVBnet」が確認できました。
補足情報(FW/ツールのバージョンなど)
環境はWindows10、使用ツールはVisualStudio2013です。
一つのソリューションの中に新しいプロジェクト追加でVisual C++の『DLL(Windows)』、Visual Basicの『Windowsフォームアプリケーション』を追加しそれぞれをビルド後に作成されたdllをVBのexeファイル内に移動させてテストしています。
回答1件
あなたの回答
tips
プレビュー