• ベストアンサー

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)

  • chie65535
  • ベストアンサー率43% (8525/19376)
回答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

  • VC++でwin32APIを作っているのですが・・・

    こんにちは。私はwin32APIを勉強しているc言語初心者です。 私はMicrosoft Visual C++ 2008を使ってc言語のwin32APIをプログラミングしているのですが、独学でやっているので物凄く邪道なwin32APIプログラミングをしているような気がするのです。 ・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 ・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 これって邪道ですか?一応何の問題もなくwin32APIプログラムが作れるのですが、もっと正規なやり方があるでしょうか。回答よろしくお願いします。

  • win32APIはCGIにすることは可能ですか?

    C言語はCGIにする事が可能だと聞きました。 win32APIで作ったアプリケーションはCGIにすることは可能ですか?

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

  • APIとMFC

    WindowsでC言語で書けて(利用できて)無料のものがAPI、C++で使えて有料なものがMFC だから、アマチュアプログラマーは、APIが使いこなせるのならば、APIを使ってプログラムを 書いたほうがいい という理解で正しいでしょうか。 ここでAPIと書いたのはWin 32 APIのことです。

  • Win32APIでカレンダー表示

    Win32API(C言語)でWindowsフォームアプリケーションのDateTimePicker のようなコントロールは作成できるのでしょうか? ラジオボタンなどはあるようですが、しらべてもわかりません。 どなたかご教示お願いします。

  • Win32APIの載っている場所

    こんばんわ。 Win32APIの載っているホームページサイトなどはないのですか? JavaのHTMLドキュメントみたいにすべて載っているものというのは、ないんでしょうか? よろしくお願いします。

  • .NET frameworkとWIN32API

    c#の勉強をしていたらWIN32APIを[ ]演算子で囲って直接呼び出すコードが多数 あるのですが、 .NET Frameworkだけで高度な(デバイスドライバなどの深い部分)プログラムを書くことはできないのでしょうか。 それとも動作が速いとかそういう理由でwin32apiを呼び出したのでしょうか。 .NET frameworkはwin32apiの上に位置するというのはわかるのですが・・・

  • Win32APIでのメモリ管理について

    C→malloc関数 C++→new演算子 Win32API→GlobalAlloc関数 とWin32APIでのメモリ管理の方法にはいろいろありますが、どれを使うのが一番実用的なのか、どれが一番効率的なのかが知りたいです。 あとWin32APIにはHeapAllocという関数もあるようですが、上記の3つは使わずにこの関数を使用したほうがよいのでしょうか。

  • VCとWin32APIの使用について?

    Delphiを使用しているのですが、私は、システムに直結してそうなので、あまり使いたくないのですが、ゴミ箱移動やWin32APIを使うこともあります。 こういった事を調べていたの時、少し見たのですが、VC++?では、Win32APIは、ためらってしまう?という、意見をみました。 その時は、スルーしたのですが、何か理由があるのでしょうか? (VC++じゃなく、VBだったかもしれません。 今もちらちらと、調べてみましたが、見つけることができなくって。 もしかしたら、Delphi信者の方なのかもしれませんが、なにか理由があるのかな?と思いまして。 どう考えても、Win32APIと、マイクロソフトの言語が、相性が悪い訳がある訳ないだろうし。 よろしくお願いします。

  • MFCなのかWin32APIなのか

    みなさんはじめまして。グフです。 これからWindows上でC/C++(VisualStudio.NET2003) にて、Windowsアプリケーション開発の勉強を始め ようとしています。 いろんなサイトや書籍を見ている中で、Windowsアプリ の開発方法としてMFCをつかうやり方と、Win32APIで 開発する方法の2つがあることがわかりました。 これからWindowsの勉強を行うにはどちらの方法で開発 するのが望ましいのでしょうか? ケース by ケースだとは思いますが、何かアドバイス いただければと思いまして、投稿させていただきました。 やはり基礎からおさえるのであれば、Win32APIの方が よろしいのでしょうか? 今後のWinFX環境を考えると、Win32APIでの知識が無駄 になってしまうということはないのでしょうか?