お世話になっています。
今回はDllの事で質問させてください。
要件
アプリケーションを設計・開発している際に、追加要件が発生することは多々あると思います。
その際にプログラムに直接追加するよりも、既存のDllファイルを使って解決する方法がありますが、そのプログラムをクライアントに簡単に配布する方法はありますでしょうか?
環境
環境:VB6、VisualStudio2017
アプリケーション側の言語:VB、VBA
Dll側の言語:C、C++、VB
追記
・インストーラは使わない方針です。
クライアント側に委ねる形でなく、複数台のクライアントにサイレント修正できるような方法を探しています。
一番の理想は、クライアントに置いてるアプリケーションと同じ階層にDllファイルを置くだけで解決するような方法です。
・作業するのは自分です。
コピーするだけで済むなら良いのですが、VB6の環境がないクライアントもあり、「Dllの参照設定」ができないせいでDllが使えません。
Dllの参照設定を行った端末では問題なく動きましたが、そうでない端末では動きませんでした。
・https://qiita.com/mmYYmmdd/items/fc1d3cce6a39771c0f36
上記のアドレスを参考にしたのですが、Dllの内部が公開されていなかったため再現できませんでした。
・試したこと
Dllをアプリケーションと同じ階層に配置し、以下のようにコールしています
VB
1Private Declare Function ADD Lib "D:\YobidasiExe\DLLTEST01.dll" (a As Long, b As Long) As Long 2 3Private Sub CommandButton1_Click() 4 Cells(1, 2) = ADD(1, 1) 5End Sub
Dll側は以下のようになっています
C++
1#include "stdafx.h" 2#include <windows.h> 3 4void __stdcall DLL_TEST1() 5{ 6 MessageBox(NULL, "DLL呼び出し成功!", "test", MB_OK); 7 Beep(523, 200); 8} 9 10int __stdcall ADD(int a, int b) 11{ 12 return a + b; 13}
Dllで利用しているライブラリはないです。
・テストについて
端末AでC++を使ってDLLを作成し、同端末上VBAでDLLを呼び出すことは成功しました。
しかし端末BにDLLとExcelをコピーペーストして起動しても、DLLを呼び出すことはできませんでした。

回答7件
あなたの回答
tips
プレビュー