unknown
2008-04-14 09:24:02 UTC
DLLについて質問です。
従来MSDOSでRS232CのCソースファイルをコンパイルして、例えばseial.objとし本体objにlinkしてhontai.exeで使っていました。
今このRS232CソースをWindows95用とWindowsNT用に若干手直しした
CソースファイルをDLLファイルにしたいのですが、
エラー(h.ファイルで)となってしまいました。
#define EXPORT extern
#else
#define EXPORT extern "C" __declspec (dllexport)
#endif
#define STDCALL __stdcall
// EXPORT int STDCALL serOpen(int port, int conf); エラーとなったのでやむなく
下記にint serOpen(int port, int conf);
以下続く
どこが悪いのでしょうか。
手順は下記の通りです。
1.Visual C++6.0を起動
2.Win32 Dynamic-Link Libraryを選択、プロジェクト名serial
3.空のDLLを選択
4.serialディレクトリー内に上記serial.hとserial.cをコピー
5.プロジェクトに追加
6.ビルドを選択実行
の順です。
どうもEXPORTで引っかかっているような気がします。
DLLて面倒ですね。こんなことでエラーになるくらいなら、
最初からobjファイルとしてビルドして一体化たい気もするのですが、
いかがでしょうか。
/******************************
堺市南区原山台
上田 恭平
E_Mail ***@sannet.ne.jp
******************************/
従来MSDOSでRS232CのCソースファイルをコンパイルして、例えばseial.objとし本体objにlinkしてhontai.exeで使っていました。
今このRS232CソースをWindows95用とWindowsNT用に若干手直しした
CソースファイルをDLLファイルにしたいのですが、
エラー(h.ファイルで)となってしまいました。
serial.h
#if defined(_INC_CONIO) || defined(CONIO)#define EXPORT extern
#else
#define EXPORT extern "C" __declspec (dllexport)
#endif
#define STDCALL __stdcall
// EXPORT int STDCALL serOpen(int port, int conf); エラーとなったのでやむなく
下記にint serOpen(int port, int conf);
以下続く
どこが悪いのでしょうか。
手順は下記の通りです。
1.Visual C++6.0を起動
2.Win32 Dynamic-Link Libraryを選択、プロジェクト名serial
3.空のDLLを選択
4.serialディレクトリー内に上記serial.hとserial.cをコピー
5.プロジェクトに追加
6.ビルドを選択実行
の順です。
どうもEXPORTで引っかかっているような気がします。
DLLて面倒ですね。こんなことでエラーになるくらいなら、
最初からobjファイルとしてビルドして一体化たい気もするのですが、
いかがでしょうか。
/******************************
堺市南区原山台
上田 恭平
E_Mail ***@sannet.ne.jp
******************************/