dポイントプレゼントキャンペーン実施中!

C言語でWIN32APIをよびだせると聞きました
どのようにしたら呼び出せるのでしょうか?

HTMLなら<object>を使えば呼び出せるみたいですが

A 回答 (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では動かなくなります。

この回答への補足

なるほど一応可能だけどすっごく厳しいって事ですね

今までの疑問が解消されました
ありがとじゅございます

補足日時:2012/12/04 19:35
    • good
    • 0

>C言語でWIN32APIをよびだせると聞きました


>どのようにしたら呼び出せるのでしょうか?

APIは、ライブラリとして提供されています。

提供されるライブラリは

1.ライブラリ関数のプロトタイプ宣言などが書かれたインクルードファイル

2.プロジェクトにリンク結合される、DLLを呼び出すライブラリ関数本体

の2つで構成されています。

例えば、APIのShellExecuteExを呼び出すのであれば

#include <shellapi.h>

とやって、専用のインクルードファイルを呼び出して関数のプロトタイプ宣言、構造体などの宣言、型宣言を行って

SHELLEXECUTEINFO ShExInfo;

って感じで引数に渡すSHELLEXECUTEINFO構造体を用意し、構造体の中身に必要な値をセットしてから

ShellExecuteEx(&ShExInfo);

のように関数を呼び出すだけです。

一般的な統合型開発環境の整ったC言語なら、記述した#include文を判断して、自動的にリンク結合するライブラリを追加してくれるので「書いてビルドするだけ」で済みます。

そうじゃない場合は、自分で結合するライブラリを指定して、コンパイルとリンクを行わないといけません。

この回答への補足

1.ライブラリ関数のプロトタイプ宣言などが書かれたインクルードファイル

2.プロジェクトにリンク結合される、DLLを呼び出すライブラリ関数本体

の2つで構成されています。

それが本当なら私は今までどうやってよびだすのかが分からないまま呼び出しまくってたのですね

ただそうなると疑問が出てくるのですがWIN32APIはどの言語でも呼び出す事ができると聞いたのですがライブラリ関数がない(?)PealやPHPはわざわざWIN32APIと同様の処理を書かないといけないのですか?

補足日時:2012/12/03 13:50
    • good
    • 0

逆にHTMLから呼び出すほうが邪道です。



「Win32API(C言語)編 トップページ」
http://www.geocities.jp/ky_webid/win32c/index.html

この回答への補足

こちらのサイトはお世話になっていますよ

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

補足日時:2012/12/03 13:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!