【自作アプリケーションにAPIを実装したい】

作成したWindowsアプリケーションにAPIを付けたいのですが、やり方が分かりません。
検索しても既存APIの利用方法ばかり出てきて、作成する側の情報を見つけらず困っています。


たとえば自作アプリケーションが『C:¥Program Files¥hatena¥hatena.exe』だとして、
『C:¥Program Files¥hatena¥alphabet.txt』に『ABCDE』を書き込む関数
『public void WriteABCDE()』があるものとします。

そこで、APIを実行すると『C:¥Program Files¥hatena¥alphabet.txt』に『ABCDE』と
書き込めるようにしたいです。
そのためには何が必要でしょうか。

 (1). 作成者はまず何をすべきか(必須ソフト、必要な知識などあれば)
 (2). 作成者はどういうソースを入れればいいのか
 (3). API利用者は何をすればAPIを実行できるか

を教えて下さい。

開発環境:Visual studio 2010
使用言語:C#

でできる方法でお願いします。
APIに関する知識は全くありません。

急ぎ&本当に困ってるので、早めにそのものズバリな回答をくださった方にはできるだけポイントはずみます。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2010/05/17 20:37:22
  • 終了:2010/05/23 12:19:30

回答(2件)

id:koriki-kozou No.1

koriki-kozou回答回数480ベストアンサー獲得回数792010/05/17 21:08:43

ポイント500pt

DLL作成しておいてリンクさせる

http://msdn.microsoft.com/ja-jp/library/67ef8sbd(v=VS.80).aspx

リンクが(かっこ)で切れるためアドレス欄に貼り付けて飛んで



APIじゃないけど別の手段として

・インスタンス生成して、パラメータとか投げられるようにしておく

・単純にフォームでも表示させておいて操作する

・利用頻度が低いなら exeに起動パラメータを読み込むようにして都度起動させる

など、なんのためにAPIが必要になってくるのかによっては別の手段もいろいろありそうだけどね

DLLにしておけば、使い方はWinAPIなどと変わりないから応用もきくと思うよ

id:ejuh

ありがとうございます。

なんとなく分かってきました。どうにかなりそうです。

exeに起動パラメータを渡す方法はここですね?

http://ufcpp.net/study/csharp/st_command.html

こっちのやり方は簡単にできそうでいい感じですね。

ちょっと試してきます。

2010/05/17 22:32:54
id:ko8820 No.2

ko8820回答回数1221ベストアンサー獲得回数692010/05/18 02:50:35

ポイント50pt

http://smdn.invisiblefulmoon.net/programming/netfx2/overview/cla...

クラスライブラリとして作成して

使用時にリンクします。

id:ejuh

ありがとうございます。


1週間で質問が終了してしまうようなので、これで締め切ります。

2010/05/23 12:18:04
  • id:dev_zer0
    > (1). 作成者はまず何をすべきか(必須ソフト、必要な知識などあれば)
    →MSDNのDLL「チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++)」を
     一通り見たほうがいいと思う
     
    http://msdn.microsoft.com/ja-jp/library/ms235636%28v=VS.100%29.aspx
  • id:koriki-kozou
    koriki-kozou 2010/05/17 21:24:26
    リンク先まちがった 直は下記

    方法 : C# DLL を作成して使用する (C# プログラミング ガイド)
    http://msdn.microsoft.com/ja-jp/library/3707x96z(v=VS.80).aspx

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません