• ベストアンサー

win32APIの呼び出し

C言語でWIN32APIをよびだせると聞きました どのようにしたら呼び出せるのでしょうか? HTMLなら<object>を使えば呼び出せるみたいですが

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

>ただそうなると疑問が出てくるのですがWIN32APIはどの言語でも呼び出す事ができると聞いたのですがライブラリ関数がない(?)PealやPHPはわざわざWIN32APIと同様の処理を書かないといけないのですか? Win32APIと同等の処理はPealやPHPだけでは書けません。なのよりシステムにアクセスが困難です。 ただし、PealやPHPはC言語で作られているので原理的には自分で好きなモジュールやライブラリ関数をC言語で作って追加することができます。Win32APIを使うライブラリを持っているPerlもあります。 「Perl で Win32::API プログラミング入門 - TAKESAKOのはてな出張所」 http://d.hatena.ne.jp/TAKESAKO/20090324/1237879559 「W32api 関数」 http://www.phpmanual.jp/ref.w32api.html それとPealやPHPをWin32API専用に書くとWindowsに動作が限定されてLinuxOSでは動かなくなります。

nanaka2222
質問者

補足

なるほど一応可能だけどすっごく厳しいって事ですね 今までの疑問が解消されました ありがとじゅございます

その他の回答 (2)

回答No.2

>C言語でWIN32APIをよびだせると聞きました >どのようにしたら呼び出せるのでしょうか? APIは、ライブラリとして提供されています。 提供されるライブラリは 1.ライブラリ関数のプロトタイプ宣言などが書かれたインクルードファイル 2.プロジェクトにリンク結合される、DLLを呼び出すライブラリ関数本体 の2つで構成されています。 例えば、APIのShellExecuteExを呼び出すのであれば #include <shellapi.h> とやって、専用のインクルードファイルを呼び出して関数のプロトタイプ宣言、構造体などの宣言、型宣言を行って SHELLEXECUTEINFO ShExInfo; って感じで引数に渡すSHELLEXECUTEINFO構造体を用意し、構造体の中身に必要な値をセットしてから ShellExecuteEx(&ShExInfo); のように関数を呼び出すだけです。 一般的な統合型開発環境の整ったC言語なら、記述した#include文を判断して、自動的にリンク結合するライブラリを追加してくれるので「書いてビルドするだけ」で済みます。 そうじゃない場合は、自分で結合するライブラリを指定して、コンパイルとリンクを行わないといけません。

nanaka2222
質問者

補足

1.ライブラリ関数のプロトタイプ宣言などが書かれたインクルードファイル 2.プロジェクトにリンク結合される、DLLを呼び出すライブラリ関数本体 の2つで構成されています。 それが本当なら私は今までどうやってよびだすのかが分からないまま呼び出しまくってたのですね ただそうなると疑問が出てくるのですがWIN32APIはどの言語でも呼び出す事ができると聞いたのですがライブラリ関数がない(?)PealやPHPはわざわざWIN32APIと同様の処理を書かないといけないのですか?

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

逆にHTMLから呼び出すほうが邪道です。 「Win32API(C言語)編 トップページ」 http://www.geocities.jp/ky_webid/win32c/index.html

nanaka2222
質問者

補足

こちらのサイトはお世話になっていますよ こちらのサイトでwin32APIはC言語で呼び出せるとは書いてありますが肝心のどうやって呼び出すか画家いてないので困りました

関連するQ&A