ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

cygwinコミュのdllの作り方について教えてください

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。

エクセルのマクロで使えるdllをcygwin環境で作成する方法を教えていただけませんでしょうか。

VisualStudioがあれば一発な気もするのですが,職場のPCにはインストールされていませんので。。。

コメント(6)

http://www.nslabs.jp/cygwin-dll.rhtml
こんなん、如何でしょうか。Googleで検索してみたら、でてきましたよ。
下名、そんなに詳しくないので、お役に立つかどうか、分かりかねますが、ご参考まで。
レスありがとうございます。
私もそれを真似してやってみたんですが,ダメでした。
別のページによると,gccではextern "C"が使えないらしいです。。
それは「 extern "C" が使えない」じゃなくて「C++ のライブラリ(DLL)に関しては gcc と VC++ で互換性が無い」の間違いです.gccでも C と C++ のコードを混在させる場合には当然 extern "C" します.

↓このあたりを見ると, 「Excelのmacroで使えるDLL」っていっても単なるDLLにしか見えないですが,何か通常のDLLと違うのでしょうか?

http://www.gogomonkey.2y.net/prog/C_dll.html

「ダメでした」というのは,おそらく「gccだから」とかいうのとは違うレベルでミスってるだけじゃないかという気がします.
了解です。

過去に,自作のMFCアプリで使うdllをVisualStudioで作ったときはフィーリングでできてしまったので,勉強が足りないようです。dllについて,勉強しなおします。
いや,別に「 dll について勉強」とかいう話でもないと思いますが.
試しに,先に挙げたリンク先のサンプルのコードをコピペして,先頭に #include "windows.h" を付けてから,

gcc -shared -o hoge.dll hoge.c

したら,ちゃんと hoge.dll は作成できました.ただし,ここで作られた hoge.dll は cygwin1.dll に依存したものです.もしも Windows ネイティブで動作する dll が欲しいなら

gcc -mno-cygwin -shared -o hoge.dll hoge.c

と, "-mno-cygwin" を付ければいいです.
いろいろ試した結果、dllwrapとDEFファイルを使ってdllができました。シンボル名の解決とかで結構苦労しました。

今までVisualStudio6.0とマイコン用の統合開発環境しか使ったことがなかったので、非常に良い勉強になりました。とりあえずmakefileが書けるようになりましたw

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

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

cygwin 更新情報

cygwinのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング