たびたびすいません。近藤と申します。
以前に、”VC++6.0で内部コマンド(DOSコマンド:DIR)をCALLする方法”では
皆様に大変お世話になりました。
今度の質問は、VC++で作成したDLL(内部コマンドが実行する)をVB6.0から呼び出したいのですが
なにも動きません。コンパイルはDLL、VB共に通っているのですが・・・・
下記にソースを載せますので、ご教授願います。
**VC++6.0ソース**
<<プログラム名:test.cpp>>
#include stdafx.h
#include test.h
#include stdlib.h
#include iostream.h
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
//int system(const char *string);
TEST_API int __stdcall fncSub()
{
cout << \n DOSコマンド(Dir)実行です。\n\n\n;
system(dir);
return 0;
}
<<プログラム名:test.h>>
#ifdef TEST_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif
TEST_API int __stdcall fncSub();
**VBソース**
<<プログラム:標準モジュール内に作成>>
Declare Function fncSub Lib TEST.dll ()
Sub Main()
MsgBox (test)
End Sub
**その他**
defファイルの作成(test.def)
LIBRARY TEST.DLL
EXPORTS
fncSub
全てファイルは、同一フォルダに格納してあります。
VCからは呼び出せますか
出来るんだったらVBがわの問題で
ここではなくVBラウンジの方がよろしいかとおもいます
> TEST_API int __stdcall fncSub()
extern C が必要のような気がします。
> 以前に、”VC++6.0で内部コマンド(DOSコマンド:DIR)をCALLする方法”では
> 皆様に大変お世話になりました。
解決したのであれば、[解決]チェックしましょう。
やってみましたが、やっぱりなにも動きませんでした。
メッセージボックスが起動されるだけです。
fncSubを呼んでないだけでは?