Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)

No.579  cygwinのライブラリを利用するVCアプリ
発言者: S.Taka
発言日: 2002 09/01 00:37
 
はじめまして。 S.Taka と申します。

cygwinのライブラリを利用するDLLを作成し,
それをVisual C++ 6.0でコンパイルされるアプリケーション
から利用できるかどうか調べています。

結果としては、リンクまではうまくいくのですが、
プログラムを実行するとアプリケーションエラーが発生して
しまいます。 ただし、cygwinのライブラリを使わずにWin32APIのみを使用するDLLならば動作しました。

やり方が悪いのか、そもそも、そんなことはできないのか
どなたかご存知ないでしょうか?

実験したソース、コンパイル方法、実行結果を以下に書きます。


[testdll.c (cygwin のgccで作成するDLLのソース)]

#include <stdio.h>

void testfunc(void)
{
printf("testfunc\n"); /* MessageBoxとかなら動作する */
}

[testdll.def]

EXPORTS
testfunc

[main.c (VC6でコンパイルするソース)]

#include <stdio.h>

void testfunc(void);

int main()
{
testfunc();

return 0;
}

[ビルドログ]

$ gcc -shared testdll.c -o testdll.dll

$ lib /def:testdll.def
Microsoft (R) Library Manager Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

LIB : warning LNK4068: /MACHINE の指定がありません; IX86 をデフォルトとします
ライブラリ testdll.lib とオブジェクト testdll.exp を作成中

$ cl main.c testdll.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

main.c
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:main.exe
main.obj
testdll.lib

[結果]

$ ./main

---------------------------
main.exe - アプリケーション エラー
---------------------------
"0x610bd171" の命令が "0x00000108" のメモリを参照しました。メモリが "read" になることはできませんでした。


プログラムを終了するには [OK] をクリックしてください
プログラムをデバッグするには [キャンセル] をクリックしてください
---------------------------
OK キャンセル
---------------------------

[バージョン]
$ cmd /c ver
Microsoft Windows 2000 [Version 5.00.2195]

$ uname -a
CYGWIN_NT-5.0 HOGE 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 unknown

$ gcc --version
2.95.3-5

$ cl /help
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
...


▼関連発言

579:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/01
 ├586:Re:cygwinのライブラリを利用するVCアプリ [水口] 09/09
 │└587:Re[2]:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/10
 │ └603:Re[3]:cygwinのライブラリを利用するVCアプリ [ken] 09/21
 │  └604:Re[4]:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/24
 │   └994:Re[5]:cygwinのライブラリを利用するVCアプリ [S.Taka] 03/16 <
 ├588:Re:cygwinのライブラリを利用するVCアプリ [やまもと] 09/10
 │└591:Re[2]:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/13
 ├592:Re:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/13
 │└873:Re[2]:cygwinのライブラリを利用するVCアプリ [森] 12/27
 │ └886:Re[3]:cygwinのライブラリを利用するVCアプリ [S.Taka] 01/02
 └763:Re:cygwinのライブラリを利用するVCアプリ [FX33V] 11/27
  └887:Re[2]:cygwinのライブラリを利用するVCアプリ [S.Taka] 01/02
   └888:Re[3]:cygwinのライブラリを利用するVCアプリ [S.Taka] 01/03
    └896:Re[4]:cygwinのライブラリを利用するVCアプリ [FX33V] 01/06

Pass 保存

早田のホームページへ
CGIROOM