はてなキーワード: dllとは
NotesDateTime型
Dim a As New NotesDateTime '<-
COMException はハンドルされませんでした
Retrieving the COM class factory for component with CLSID {29131526-2EED-1069-BF5D-00DD011186B7} failed due to the following error: 80040154 クラスが登録されていません (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
やってもだめだぜ。64bitOSだからか?
方法5個あって、自分に選択肢が与えられて、結局5個試させられて、全部だめで(しかもその理由が、自分がちょっと変えた環境などへ見事に突いてくる)。
Windows 7 64bit 版上で winpcap を使ったサービスプロセスを制作。
こちらのページを参考にさせてもらった。
「WinPcapを使用したパケットモニターの作成」CodeZine 古谷誠進さん
http://codezine.jp/article/detail/126?p=2
・アダプタ一覧(アダプタ名およびIPアドレス)を取得する
の箇所
処理は、while(d)ループの外でやらなくちゃいけない。
デバッグきつかったっす、サービスだとデバッグできないこともあって。
・俺のマシンが64bitだから、winpcap.dllやlibと合わない?
(PCAPSDKのLibにx64というサブフォルダがあって、こっちのものを指定しなきゃだめ?)
・WIDECHARとMULTIBYTE の扱いの問題?
と、いろいろ迂回してしまった。
解消したら、無事動き出した。
ここがどういうことを言ってるのかちょっとよくわからないんだけど、
アプリ間の依存関係はまぁそれほど問題にならないからどうでもいいかな。
下位レイヤがほんと酷い。
dllだのランタイムライブラリだの、スクリプト言語の実行環境だの何だの
パッケージ単位で全部解決させようとするからどのインストーラにもいちいちpythonとか入ってやがる。
逆にその辺がまとまってないソフトを入れようとすると、依存関係を自分で解決する必要があって大体ハマる。
P.340
・パスにスペースの入らない(たとえば、My Documentsなどは、途中にスペースが入っているのでエラーになる。アンダーバー「_」は可。)
フォルダ(C\Testなど)を作る。 →以下フォルダAとする。
2/ 実行ファイルを作りたいスクリプト(○○.rb)ファイル自体も、2バイト文字、半角でもスペースの入らないファイル名にする。
→「5-05-04 ride block.rb」といったファイル名は、スペースが入っているのでダメ。
3/ フォルダAに、ActiveScriptRubyをインストールするとできる「ruby console」ショートカット(everythingで検索)のショートカットを、そのフォルダにコピーする。
4/ フォルダAに、実行ファイルを作りたいスクリプト(○○.rb)を、Imgフォルダ等と共にコピーする。
5/ フォルダAに、fontを、fontsフォルダごとコピーする。
6/ フォルダAに、Ruby/SDLのDLLをそのフォルダにコピーする。15種類。
→DLLフォルダを、ではなく、exeファイルの置かれる場所に、DLLファイルそのものを直接並べる。
フォルダAにコピーしたruby consoleを起動 →コマンドプロンプトの後に、「ruby ○○.rb」とし、スクリプトの起動を確認する。
8/ フォルダAにコピーしたruby consoleを起動 →コマンドプロンプトの後に、「mkexy ○○.rb」とする。
→ゲームが起動するので、終了させる。
9/ ○○.exy ファイルを、メモ帳等のテキストエディタで開く
10/ 初期値は「core: cui」となっているのを、「core: gui」に変える。
→変えなくてもいいが、その場合、実行時にコマンドプロンプト窓が出てきて邪魔になる。
11/ フォルダAにコピーしたruby consoleを起動 →コマンドプロンプトの後に、「exerb ○○.exy」←今作ったファイル とする。
12/ 「○○.exe」をダブルクリックして実行、起動しなかった場合、2~5のプロセスに、コピーし忘れがある。
13/ 配布物は以下の通り。
・実行ファイル「○○.exe」 →ファイル名は任意に変更可。(もちろん.exe以外の名前)
・fontsフォルダ
覚書。
Internet Explorer8(64bit版ではない)にてGyaO!、Yahoo!ニュース、DMM等の動画サイトを閲覧するとブラウザがクラッシュする。
Internet Explorer は動作を停止しました
強制終了されるページはMicrosoft Silverlightプラグインを使用したもの。
障害が発生しているアプリケーション名: iexplore.exe、バージョン: 8.0.7600.16700、タイム スタンプ: 0x4cd23213
障害が発生しているモジュール名: getflash.dll、バージョン: 1.0.0.1、タイム スタンプ: 0x4506208e
例外コード: 0xc0000005
障害オフセット: 0x00008c40
障害が発生しているアプリケーションの開始時刻: 0x01cbbb667d383d68
障害が発生しているアプリケーション パス: C:\Program Files (x86)\Internet Explorer\iexplore.exe
FlashGet1.73をインストールしていたのだが、こいつとSilverlightの相性がわるいのか。
10 :名無しさん@お腹いっぱい。[sage] 投稿日:2010-07-08 14:19:43 ID:4+wg75AQ0
シビアなキーカスタマイズが絡む場合は、AHKかkeyhacのPython使うほうがいいかもしれない。
キー操作が絡んで、かつ速度を求めないなら、AHKやkeyhacからWSHやAutoITのスクリプトを走らせてもいい。
AutoItXはWSHから使えるのが便利なところ。素のAutoItのGUIの部分は使えんけど。
GUI使いたきゃ、HTAから使ってもいいし、ほかのDLL使ってもいい。
SFCminiのDLLとSeraphyのDLLまで使えば、UWSCやAutoHotKeyとほぼ同等のことを
javascriptやVbscriptの文法で出来てしまう。
テキストエディタなどWSHやdmscriptを使えるアプリのマクロからも、
他のアプリを制御したり、他のアプリのウィンドウの情報を取ってくることが簡単になる。
もちろん、出来ないことも大いけども。
いちいちコマンドラインツールを探さなくても、とりあえず今使ってるアプリを
スクリプトから制御することが簡単になる。
間違いもあるかもしれないし、詳細はググっていただくとして。
まずはFXの作りの話になるんだけど、あれのUIとかはXULって言う、javascriptやCSS, XMLなんかをベースにした言語で書かれている。
で、拡張機能はこのXULで作る。つまり、元々のUIとかを形作っているXUL群に追加でインストールするXULが拡張機能。
対してプラグインはnetscapeの時代から続く、DLLを使う方式。
拡張機能はスクリプト言語ベースで、しかもwebで使ってるものの流用だから、入りやすく作りやすい。メモ帳あれば作れる的。
普通にクロージャという場合、レキシカルスコープを持つことを期待されると思うけど、DLLやらsoからエクスポートされる関数は普通のCのスコープだからクロージャとは言わないと思うよ。(そもそもDLLもsoも標準C/C++じゃないから、もしこれらがクロージャ的な動きをするとしてもこれを以て「Cのクロージャ」と呼ぶのはおかしいというのは置いといても。)
ダイナミックスコープなemacs Lispのlambdaとか、ダイナミックスコープもどき(っていうのか?なんて表現したらいいか分からん)なPHPのcreate_functionは動的に作りはしてもクロージャとは言わないんじゃないかな。
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3
やっぱそんなもんかー。
今あらためて調べたら
http://mail.scipy.org/pipermail/scipy-user/2007-November/014676.html
これと全く同じエラーだった。返信ついてないw
fblas.dllとか_cdrot_とかでググってもこの記事以外引っかからないww
SKNETのMonster TV HDP2 Goldでコピーフリー環境を作ったのでそのまとめ。
[Hardware] Products=3275:7070
torry
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi
volume
'Sndvol.exe',
'sndvol32.exe'
eXeScope
http://www.forest.impress.co.jp/lib/stdy/program/progsupt/exescope.html
LoadFromFile
Picture.Assign
LoadFromResourceName
TResourceStream
LoadFromStream
DLLの作り方
http://oto.chu.jp/kujira/text/delphi/dll.htm
http://mrxray.on.coocan.jp/Halbow/Notes/N008.html
http://www.geocities.jp/asumaroyuumaro/program/tips/extracticon.html
http://www.geocities.jp/asumaroyuumaro/program/tips/extracticon48.html
日本人は何年も勉強しているのにもかかわらず英語が出来ない人が多いので(単に勉強量が足りないかもしくは勉強の仕方が間違ってるのだと思う)有名な英語のソフトウェアは誰かが日本語化するわけだが、このエントリでは日本語化について書こうと思う。
現在ソフトウェアの日本語化の主流はResource Hacker等によるリソースの書き換えがこの方法は頭が悪い。モーレツに頭が悪い。なぜならリソースが容易に取り出せる形で格納されているとも限らないのでResource Hacker等で改変できない場合がある上、バージョンが上がる毎にパッチを変更しなければならないからだ。
そこで、この2つの問題を一気に解決してくれる策がある。
DLLインジェクションである。
詳しい説明は割愛するがDLLインジェクションとは、簡単に言うと指定したDLLを強制的にあるプロセスに読み込ませることで、そのプロセスに任意の動作をさせるテクニックである。
これを使えば日本語化できるのではないか?
ところでなんだが、staxってとこがAmazonのEC2サービス上でTomcatを無料開放しているらしいのだ。
http://jp.techcrunch.com/archives/20081216stax-networks-launches-google-app-engine-for-java/
で置いた。
http://db-view.johannes.staxapps.net/
ソースはここ
http://code.assembla.com/dmcsystemservice/subversion/nodes/db-view/trunk
これ作ったころはGUIの閲覧ツールってAccessとかしかなくて、結構好評だったのだが、今はフリーのクライアントソフトがいっぱいでもう、俺の出番おわったわ。
まずJavaを入れる。
http://java.sun.com/javase/ja/6/download.html
で、eclipseを入れる。
http://www.eclipse.org/downloads/
で起動してみる。
が。。。。起動しない。
でggr。
となんかeclipse.iniがおかしいらしい。
http://ajiblog.sblo.jp/article/17157448.html
おっきした!!
でアカウントをとる。
http://code.assembla.com/dmcsystemservice/
http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn15/eclipseplgn15_1.html
subversiveも使ってみたいなぁと思ったが、ここでeclipseがバシバシ落ちる。
eclipse.iniのXMXオプションをいじるがOutOfMemoryやら、libeay32.dll 序数が見つかりません。とか
秩序ってなんだよ。英語でそのままいってくれ。余計わからん。
でなんか、負けた気がしたが、Javaを5に落とすことにした。
http://java.sun.com/j2se/1.5.0/ja/download.html
XMXを768Mにして起動すると、落ちなくなった。
が、相変わらず、秩序が見つからなくなる。秩序って何。膣女?
こっちのsvnプラグインのほうがいいのかも。。来年やろう。そのうちやろう。ゆっくりしていってね!!
http://server.seasar.org/manual/install_subclipse.html
http://d.hatena.ne.jp/yuroyoro/20081222/1229922781
楽勝だ。
で、また動かない。
で、動いた。が、履歴機能が動かない。
で、ソース修正。
ObjectInputStream、OutputStreamを使っていたのだがXMLEncoderとDecoderにした。
http://www.utj.co.jp/xml/dev/java/dxjava_7.html
ぉ。こんな便利なのが1.4からあったのか。
おもえば、これを最初に作った時は1.3だった。LinkedHashMapがなくてArrayList内包したMapを作っていた。
が、そんなのいらんので消した。で、履歴保持クラスもXMLEncoderからリフレクトできるようにガバガバにプロパティをさらした。
そしたら、動く。履歴機能が動く。
ぉぉ。では早速、svnにあげよう。
で、eclipseのsvnクライアント。相変わらず膣女が見つからないらしい。
去年だったかな、女の子にipodの音はどうやって大きくするの?と聞かれて、右にくるくる。と答えると、
あ、大きくなった。今度、のび太くんのもまわしてみよう。と言われた。
あれから右にくるくるされてない。泣きたい。あの娘は膣女だった。
そんなことを思いながら、エロサイトに誘導されて一回休み。eclipseを落とす。
http://pics.dmm.co.jp/digital/video/h_155tdjk00001/h_155tdjk00001pl.jpg
で、eclipse再起動。svnクライアント。相変わらず膣女が見つからないらしい。
おれくらい帰国子女になれば、英語のメニューのほうが調子がいい。
と思っていたが、svnクライアントだけ微妙に日本語化されている。
が、肝心なところが英語だ。よくわからん。CVSと一緒だろ。と思ってUpdateしたら、ソースが消えた。。。
LocalHistoryから復元しようと思ったのだが、まんどくさい。
staxにDeployしたやつを再度ダウンロードしたら元に戻った。
びっくりした。バックアップソフトでクラッシュする。そんなことも初心者には、おうおうにしてある。
だからバックアップのバックアップ(ryで無限ループにはまるシステムも少なくない。
あきらめが大事だ。ある程度であきらめないとキリがない。
で、再度svnクライアント。今度はCommitをちゃんと選ぶ。
が、明らかにUploadしていない。で、終わると、いくつかのファイルのアップロードはキャンセルされた。とかでる。
で、再度svnクライアント。またまたCommitをちゃんと選ぶ。
ぉ。今度はうまくいく。あきらかにさっきより時間がかかっている。WireShirkで見てないが、あきらかにsvnサーバーにソケットをはっている。
http://code.assembla.com/dmcsystemservice/subversion/nodes/db-view/trunk
ぉぉ。あがっている。
さてタグを設定して、ブランチを作ってみたいみたいが、壊れそうなので怖い。いつからか大人の恋に臆病だ。
XMLEncoderの入出力をBufferedにしようと思ったが、もういいや。
で、寄り道している間に、こんなのを今更発見した。
http://tuigwaa.sandbox.seasar.org/index.html
これだ。俺が欲しかったのはこれだ。
これぐらい楽勝じゃないと、プログラマはわりに合わない。
さっそく落とす。
が、動かない。誰のせい?それはあれだ。また奴だ。。。
もういい。まんどくさい。この金髪ブタヤロウ!!しね!しね!しね!と誰かにメールしたいが、やめておこう。
単にそういう技が必要なくなっただけ
必要が無くなったのは大前提だと思うけど?
だから、昔はやったけど、今はやらない。DLLやSOがあるというのが1番の理由。でも、なんでDLLやSOが出てきたのかというと
この手の技をみんなが使うから、システムがサポートしたって事でしょ?
物事の理由は1つではなくて、複数の理由があって、そのn番目の理由を説明しているときに、
1番の理由はこれです。っていわれても、そんなのみんな知ってるでしょ?
○メモリ上にプログラムを自力でロードして、それを関数ポインタに変換して関数コールすると、Exploit系のバグなのか、わざとやっているのかが外部ツールで判別付かない場合があるので、この方式は使わなくなり、現在はDLL呼び出しやSO呼び出しが一般的。
ちゃんとExploit系に使われる関数ポインタはクラックの対象ってExploitというキーワード書いたのに(T_T)。高々、コンパイラが保証してくれる範囲の関数ポインタは安全だから使えばいいと思うよ。
究極
printf("%x\n",(int)psrc);
こういう技が必要になることもあるし。
Cって面白いと思う。
char *prog="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
void *(*psrc)(void *) = void *(*)(void *)prog;
(*psrc)(NULL);
こんな感じで、データ配列のプログラムとしての実行で、昔はあったけど、いまはこういうコードはDLLとかSOとかで書くのがお作法だよねーと
さらにいえばWindwosならCOMで書けと・・・
どうみても、Code Exploitのバグに見えるもの、この手のコードは。
外部ツールがバグとして引っかけちゃうから書かないのが最近の主流だと思う。書く必要もほとんど無いし。
Lispのようにプログラム自身がメモリ上に動的にプログラムを必要に応じて計算しながら書き込んで、それを実行すれば、ある意味人工知能的なプログラムとその美しさが実現できるけど、それは一般的なプログラムの範疇ではバグの検出が複雑になるので、やっちゃダメとはいわないが特殊分野の技法だなぁと思う限り。