|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。有个复杂的成绩:LookingforWindowsAPIDefinitions大致是在问:C#有无相似C++中利用的windows.h文件?
这真是个愚昧的成绩,是个C#程序员城市晓得,C#没有甚么头文件的说法。以是谜底太复杂了:没有-_-。
是啊,这是个C#程序员都晓得的谜底。可是怎样仍然有人问出这个成绩呢?以是,要末问成绩的人是个呆子,要末实际上是你没了解这个成绩。
这个成绩的实在目标是,他想要在C#中挪用NativeWindowsAPI,可是又以为一个个声明WindowsAPI及其用到的数据布局很烦琐。而在C++中,引进了windows.h以后能够间接挪用了。
固然更多的人了解了这个成绩,并给出了靠谱些的谜底:用http://pinvoke.net/
再进一步想,.NETFramework本人一定也用到了很多WindowsAPI,假如Decompile一个几个.NETFramework的DLL,会发明想要的工具就在Microsoft.Win32上面,惋惜的是,满是internal的。我们非得re-createthewheel.
为何.NETFramework不把这些工具公然出来呢?我猜也许是由于.NETFramework自己应该是平台有关,假如把这些公然出来,利用这些API的代码明显就没法运转在Linux平台上。至于用于本人写PInvoke代码,固然也让代码没法跨平台,可是这是用户举动,微软是没有卖力的。
利用PInvoke并非单单写写声明那末复杂的,还要思索以后的操纵体系撑持不撑持,不撑持有无Workaround;还要思索参数的编解码。每主要用PInvoke的时分都要把这些事变从头做一遍一点意义也没有。
以是,http://pinvoke.net/就是个渣滓。http://pinvoke.codeplex.com/才是更好的选择。
没有愚昧的成绩,只要愚昧的谜底。
无论谁倒了对双方阵营的粉丝们也是有害无益。 |
|