• 締切済み

VBで作成したdllをAccessで使用

こんにちは。教えてください。 開発環境はXP/Access VBA(97 SP-1)です。 パスワード暗号化用のFunctionを作ったのですが、 このままではモジュールを開き、ソースを読まれたら 暗号化ロジックが判明してしまいます。 そこで、このFunctionをdll化してしまいたいと思うのですが、 dllをVBで作成する場合、VBのバージョンに制限は あるのでしょうか? Accessのバージョンが古いため、少し心配です。 VBは最新バージョンでも問題ないですかね? 宜しくお願いします。

みんなの回答

回答No.1

VB の最新バージョンというのは具体的に言うと VB 6.0 のことなんでしょうか? .NET のことなんでしょうか? 私は .NET のことはほとんど何もわからないのですが、6.0 なら大丈夫だと思います。(試してみた訳ではないのですが。)

bessarr
質問者

お礼

ありがとうございました。

関連するQ&A

  • VB2005で作成したDLLをExcelVBAで使用したいのですが

    VBAで色々定義してもまったく使用できません。 作成したDLLをDependencyWalkerで覗くとFunction名が出ていないので、うまくDLLができていないと思うのですが、何が問題なのでしょうか? C++等でようなDEFファイルのようなものは定義していません。 (VBでの定義がわかりません)よろしく御願いします。

  • VB2005 .NETでAccessのイベントをフックするDLLを作成したい

    Access2000 のフォームをマウスホイールでスクロールさせたいと考えています。 VBA を使用したときはできたのですが VBE に不具合があるため、DLL を作成することが推奨されています。 参考URL1) http://support.microsoft.com/kb/278379/ja に VB 6.0 で Accessのイベントをフックする方法が記述されているので、これを VB 2005 .NET で行いたいのです。 イベントをフックできたのですが、VBE を開いた状態で Access フォームをスクロールさせようとすると、 イベントが延々と繰り返し生じてしまいます。 これの解決方法をご教示いただきたいです。よろしくお願いいたします。 環境は以下の通りです。 VB 2005 .NET Express Access2000 具体的なソースは長くてここには乗せられないので以下のURLにアップしました。 http://irija-bari.hp.infoseek.co.jp/dll_for_access2000/

  • VB6でバイナリ互換でDLL作成するには?

    VB6.0にてActiveX DLLで開発をしたいのですが、 プロジェクトのプロパティ.コンポーネントにてバイナリ互換を選択すると バージョン互換コンポーネントを設定できません。というエラーメッセージが出て、 DLLを作成できません。 プロジェクトはフォーム1画面、標準モジュール複数、クラスモジュールで構成されています。 DLL作成手順のアドバイスをお願いします。 もう1点、 ある程度、開発できたら単体テストを行います。 その際は現場で用意されているテスト起動画面を使用するように言われたのですが、 この方法だと自分の担当画面に修正を加えるたびに下記1~3の作業を行う 必要があると思うのですが、もっとスマートな方法はないのでしょうか? 1.修正したプロジェクトを保存してdllを作成する。 2.作成したdllを所定の場所(現場で指示された場所)に格納 3.テスト起動画面からそのdllを指定して単体テスト

  • VB DLLプロジェクトについて

    いつもお世話になってます。 VB6.0で開発を行っております。VBのDLLを作成しております。 そこで、お聞きしたいのが、DLLプロジェクトのプロパティの中に、コンポーネントという項があるのですが、 その中のバージョンの互換性について教えていただきたいと思っております。 まず、根本的にこれは設定をするとどういうことになるのでしょうか?バージョンの互換性という意味がよくわからないので、教えていただきたいと思います。 それと、「互換なし」、「プロジェクト互換」、「バイナリ互換」はどう使い分けるものなのでしょうか? ヘルプを見てもよくわかなかったので、教えていただきたいと思っております。 何卒よろしくお願い申し上げます。

  • Access内の汎用モジュールにパスワードを平文(テキスト)で記載し、

    Access内の汎用モジュールにパスワードを平文(テキスト)で記載し、プログラムから利用しています。 単独使用なら平文で問題ないのですが、開発者も含め複数利用時にソース開くことでパスワードが漏れるのは困ります。 そこで、平文のパスワードを暗号化したいと考えました。 暗号化されたパスワードはソースを見ただけでは、元の平文のパスワードが何か分かりません。 しかし、プログラムから暗号化されたパスワードを復号化する際のメソッドを見れば、開発者は元の平文のパスワードが分かります。 メソッドにキーを与えないと復号化できないようにし、キーはバイナリで深い階層に沈めれば、直ぐには開発者でも平文のパスワードが分からない気がします。 VBAで書ける、このような方法を簡単に実装するものはありますでしょうか?もしくは良いフリーソフトもしくはシェアウェアはありますでしょうか?他の方法でも問題が解決すればOKです。 図解も含めてみました。つたない説明ですみませんが、どなたかお助け下さい。

  • EXE/DLLに埋め込まれた画像

    よくフリーソフトなどでEXE/DLL等に埋め込まれた画像を取り出すツールというものを見かけるのですが,そのツールを作るにはどのようにすればよいのでしょうか? また,モジュールに埋め込まれた画像を同じサイズの画像となら置き換える事ができる気もするのですが可能なのでしょうか?教えてください。 開発はVB6.0で行い処理の対象となるモジュールもVB6.0で作成されたものを想定しています。

  • VB4.0にて作成したソフトの配布

    VB4.0(32ビット版)にてソフトを開発しました。 フリーソフトとして配布しようと思います。 インストーラ(EXEとReadMeとKernel32.DLL,Version.DLL)を作成し、知人のPC(Win2000)にインストールしようと したら「VB40032.DLLが見つかりませんでした。」と表示され、インストーラも起動できなかったそうです。 VB6.0のランタイムを入れてもだめだったそうです。 やはり、VB4.0(32ビット版)のランタイムが必要なのでしょうか?ご教授願います。

  • VBAをDLL化する方法を教えてください。

    Excelの中で、UserFormを使用し、グラフを操作するプログラムをVBAで作成しています。 そこで、VBAのソースを見られないようにするために、全てDLL化してだれにでも配信できるようにしたいと考えていますが、どのようにすれば、DLLにできるのかわかりません。 VBAのパスワードだけでは弱いので、DLL化する方法がありましたら、どなたかその方法をご教授願います。

  • DLL VBとC++

    VBAからVC++2005のDLLを呼び出すプログラムを書いています。 VB側で作成したcpp_proc関数を呼ぶとVBアプリ自体が落ちました。 DLLのreturnの直前に以下のMessageBoxで表示させるとそこまでは表示され、 リターンを押すと、落ちました。 VB側の引数の値 String * 8192が悪いのでしょうか? return直前まで動作していたので、DLLの戻り値に何か原因があるのでしょうか? ついでの質問ですが、DEFの @1は無くても動くのでしょうか? 意味が知りたいです。 // ----- C++ (DLL側) ----- int __stdcall cpp_proc(LPCSTR inp, LPSTR out) { ... 省略 MessageBox(0, "ここまで通過", "debug", MB_OK); return 0; } // ----- DEF ----- LIBRARY "example" DESCRIPTION 'テスト' EXPORTS ; 明示的なエクスポートはここへ記述できます cpp_proc @1 '----- VB側 ----- Public Declare Function cpp_proc Lib "example.dll" _ (ByVal inp As String, ByRef out As String) As Integer Public Sub Test() Dim ret As Integer Dim inp As String Dim out As String * 8192 ret = cpp_proc(inp, out) MsgBox("ret=[" & Cstr(ret) & "]"); End Sub

  • VC++で作成したDLLをVBから呼ぶと戻り値が化けてしまう

    はじめまして。いつも勉強させていただいております。 VCは今回初めてやっておりますので当たり前の質問 になってしまうかもしれませんがご教授願います。 以下のような仕様でものづくりを行っております。 1.VBよりVC++で作成したDLLを呼び出す。 2.VC++で作成したDLL側ではパラメータより取得した   値を元に足し算をした結果を   戻り値にセットして要求元に返却する。 といった流れで考えています。 2の部分についてはExeを一度作成し実行させた ところDOS窓に値が表示されました。(printfで) しかし、正しくOUTPUTされた値がVB側の戻り値と して返却された時点で参照すると「-6348」 となっています。 なぜこうなってしまうのか原因がわからず投稿 させて頂きました。 ご存知の方、ご教授下さい。 ************************************************* VC++ DLL側のソース ************************************************* #include <windows.h> #define DLL_EXPORT __declspec(dllexport) extern "C" { DLL_EXPORT int add(int a,int b); } int add(int a,int b) { return a+b; } ************************************************* VB  DLL呼び出し元 ************************************************* Option Explicit Private Declare Function add Lib "C:\Program Files\Microsoft Visual Studio\test\Debug\test.dll" Alias "_add@8" (a As Long, b As Long) As Integer Private Sub Command1_Click() Dim ret As Long ret = add(1, 2) MsgBox ret End Sub 環境 OS:WinXP 言語:VC++6.0    VB6.0(SP6)

専門家に質問してみよう