P/Invokeで深いため息がでた。
1.P/Invokeについて
仕事で.netからWIN32API呼び出しする処理を書くことになり
(P/Invokeというやつ?)構造体定義でウンザリしているところ。
API呼び出しなんて誰が書いても同じになると思うんだけど、
なんでそんなこといちいち定義を書き起こす必要があるのかと。
...何のためのMicrosoft.Win32ネームスペースなのかと。
こう...深いため息が...。
...。
pinvoke.netなるサイトがあることを知る。常識?
...。
2.VisualStudio2003の悲しさ
あと、同じ仕事場の人がExcel(OfficeXP)から、ASP.NETの
webサービスにアクセスするシステムの作成で苦労されている。
問題を困難にしているのは実行/開発環境の縛りがあることかなと。
具体的には
実行環境 WinXP, OfficeXP, .net1.1
開発環境 WinXP, VS.NET2003, .net1.1
客先の環境がこれなので仕方ないのだけど...こういうのってやるせないね。
Office2007あたりなら新しい連携のAPIとかもあって.netとの連携も
スムーズかもしれないし、VS2005ならC++/CLRがあるのでネイティブからの
連携も十分ありの選択肢だと思うけど、そのどちらもできない。
マネージ拡張は2005でC++/CLRに取って代わるのに、1から勉強する気に
ならないしー。
そこまでしなくてもなにか方法あるのかしら?
3.VisualStudio2003のVB.NETには
unsignedの型ないのね。
わたくしてっきり.netなら言い回しこそ違えど、C#と同じ文法を提供していると
思ってましたよ。まして基本型の種類なんて。
Win32APIの引数や戻り値って結構unsigned intな値が良く利用されているので
困った。
戻り値でDWORD型を返す関数を利用することがあり、Long型で受け取った
のだけど、使うとなぜか処理成功のでありながら成功"0"を戻さないという
問題にぶつかる。(処理は正常に動いているっぽい)
戻り値を切ったり張ったりずらしたりしたけど、適当な値が取れなかったので
すっぱりあきらめC#で書くことにした。汗
原因はたぶん100%私のミスだと思うけど、原因を調べて直す気ゼロだったので
C#でいけるならVB.NETにこだわる理由ないじゃん?ということで逃げました。
VS2005から対応というのよく目にしてホントせつねえ。
ライブラリの種類も貧弱だし、無名デリゲート,クラス無いし,ジェネリクス無いし
C++/CLR無いし
今日は愚痴ばっか。
仕事で.netからWIN32API呼び出しする処理を書くことになり
(P/Invokeというやつ?)構造体定義でウンザリしているところ。
API呼び出しなんて誰が書いても同じになると思うんだけど、
なんでそんなこといちいち定義を書き起こす必要があるのかと。
...何のためのMicrosoft.Win32ネームスペースなのかと。
こう...深いため息が...。
...。
pinvoke.netなるサイトがあることを知る。常識?
...。
2.VisualStudio2003の悲しさ
あと、同じ仕事場の人がExcel(OfficeXP)から、ASP.NETの
webサービスにアクセスするシステムの作成で苦労されている。
問題を困難にしているのは実行/開発環境の縛りがあることかなと。
具体的には
実行環境 WinXP, OfficeXP, .net1.1
開発環境 WinXP, VS.NET2003, .net1.1
客先の環境がこれなので仕方ないのだけど...こういうのってやるせないね。
Office2007あたりなら新しい連携のAPIとかもあって.netとの連携も
スムーズかもしれないし、VS2005ならC++/CLRがあるのでネイティブからの
連携も十分ありの選択肢だと思うけど、そのどちらもできない。
マネージ拡張は2005でC++/CLRに取って代わるのに、1から勉強する気に
ならないしー。
そこまでしなくてもなにか方法あるのかしら?
3.VisualStudio2003のVB.NETには
unsignedの型ないのね。
わたくしてっきり.netなら言い回しこそ違えど、C#と同じ文法を提供していると
思ってましたよ。まして基本型の種類なんて。
Win32APIの引数や戻り値って結構unsigned intな値が良く利用されているので
困った。
戻り値でDWORD型を返す関数を利用することがあり、Long型で受け取った
のだけど、使うとなぜか処理成功のでありながら成功"0"を戻さないという
問題にぶつかる。(処理は正常に動いているっぽい)
戻り値を切ったり張ったりずらしたりしたけど、適当な値が取れなかったので
すっぱりあきらめC#で書くことにした。汗
原因はたぶん100%私のミスだと思うけど、原因を調べて直す気ゼロだったので
C#でいけるならVB.NETにこだわる理由ないじゃん?ということで逃げました。
VS2005から対応というのよく目にしてホントせつねえ。
ライブラリの種類も貧弱だし、無名デリゲート,クラス無いし,ジェネリクス無いし
C++/CLR無いし
今日は愚痴ばっか。
コメント