JBTALKS.CC

标题: C# 与API之间的关系 [打印本页]

作者: my_world    时间: 2010-12-9 09:36 AM
标题: C# 与API之间的关系
各位,在这里有些想问一问。。
这API就是我们都有读到过的Application programming interface,但有一些想深入了解。
找过了某些网页,印象还有些摸糊。。
如果我们在c#里要用到window里的api时,是不是就像我们用.net里的dll一样呢?
直接就拿来用?当然要用到很多arg。。
我们是否就可采用这些api来控制window里原有的程序呢?
比如Window media player?etc
作者: 靈山    时间: 2010-12-9 09:49 AM
這一方面我也很想知道列~~~
作者: weeming21    时间: 2010-12-9 04:55 PM
可以的
载入目标memory然后call里面的Function
作者: goodhermit95    时间: 2010-12-9 05:26 PM
是不是就像我们用.net里的dll一样呢?

怎样一样法??
我们是否就可采用这些api来控制window里原有的程序呢?

怎样才算控制?用他的"程序"还是更改他的"程序"
你是要用Windows media player还是控制(更改WMP settings)?
作者: my_world    时间: 2010-12-9 06:17 PM
回复 4# goodhermit95


可能只是普通的用,对于新手来说。
要get,set他的property可能还有很多东西要学的。
现在较想知道的是如何控制? 应该说是要一个概念先!!
作者: goodday    时间: 2010-12-10 12:57 AM
要 看你 要 用什么
如果 要 control windows media player 就不用那么麻烦
Interoperate  就好了
http://www.codeproject.com/KB/cs/wmp_pinvoke.aspx
这个文章 我随便照的

我不懂 API 和 interoperation 的是不是一样
但我 知道 以前 是  DCOM  MFC 的世界
interoperation 是 .net 要和 com 沟通 (com 是vb4,5,6; C++ MFC )
80% 经过 interoperation 了 是运作 没问题

如果 要很 基层 的 如
运用  user32.dll , gdi32.dll, kernal32.dll
来辨认 那一个 windows 或 msgbox 如 MessageBoxExW
就要在映射 进那个 class
如下
[DllImport("User32.dll")]
static extern Boolean MessageBeep(UInt32 beepType);

。。。
找 hWnd, Msg, wParam, lParam 就要用 SPY++ ,winspector 的 tool


我也不是 很厉害 在这方面
会用 是因为 我有写和 hardware 沟通 的 program
他们 都给 我 dll 都是 c++ 6 写 的
那种 API 沟通 的 大多数 一样
作者: goodday    时间: 2010-12-10 01:07 AM
本来进来 是要 写 近期的 开发 的 project 的
刚刚 回味 了 DCOM 的 东东

近期
thread programming
socket programming
GDI programming
OCR programming

都是 很累 的 project 。。。。。。。
会做到 写一个 bot
自己 处理 我 的 东西
如 自己 login
自己读  captcha
read IIS 的 时 自己 decompress
扮 IE , Firefox   
SSL 自己 install
破 cookkie less 的 website
最后 好像 失败 的 感觉
写不到 代替 我 每天早上 一样 的 动作
每天 想 既然 都是 一样 的 东西
自己 写 个 bot 做工 啦
打算 加 sms 进来
突发 的 sms 给我
iphone teamviewer 回来

失败 啦
作者: weeming21    时间: 2010-12-10 02:50 PM
本来进来 是要 写 近期的 开发 的 project 的
刚刚 回味 了 DCOM 的 东东

近期
thread programming ...
goodday 发表于 2010-12-10 01:07 AM


感觉这个project像挖掘机多过像bot = =
作者: goodhermit95    时间: 2010-12-11 10:20 AM
说到读chapta我看过一个网站很好笑,他的chapta是字不是图片

作者: my_world    时间: 2011-6-15 10:39 AM
各位大大,还有一点想问一问。
现在我用的是window 7 64bit, 要用一个h/w的dll。
当要用的时候,就出现 - "Unable to load DLL 'XXX.dll': The specified module could not be found."
当用我同事的电脑时却可以用,os是win xp 32 bit.
还是他的电脑有install什么额外的driver?

用c# 3.5,Dllimport的方式
作者: Super-Tomato    时间: 2011-6-15 07:01 PM
各位大大,还有一点想问一问。
现在我用的是window 7 64bit, 要用一个h/w的dll。
当要用的时候,就出现 - ...
my_world 发表于 2011-6-15 10:39 AM



确認該 dll 是否存在於系统或同一資料夹中
作者: goodday    时间: 2011-6-16 02:00 AM
regsvr32
没register 进电脑的DCOM LIB
作者: my_world    时间: 2011-6-16 03:58 PM
回复 12# goodday

回tomato,该dll已在同一个folder了。
goodday,我应该要怎么检查呢?

我本想直接抄dll去c:\\windows\assembly的,但会出现 "expected contain an assembly manifest."的msg.
作者: Super-Tomato    时间: 2011-6-16 04:29 PM
回复  goodday

回tomato,该dll已在同一个folder了。
goodday,我应该要怎么检查呢?

我本想直接抄dl ...
my_world 发表于 2011-6-16 03:58 PM


既然已经在同一资料夹中了,那麽就如 goodday 所說的需要注册該 dll
作者: shippo    时间: 2011-6-16 07:52 PM
1。start->run->type in regsvr32 C:\xxx\xx.dll

2。把那个dll 放进C:\windows\system32 里应该能行。
作者: my_world    时间: 2011-7-19 06:06 PM
最近又碰到新问题,用dll时却出现以下问题。
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
找了许多网站好像都说是dll有问题了, 各位有何见解?
作者: my_world    时间: 2011-7-25 05:11 PM
最近又碰到新问题,用dll时却出现以下问题。
Attempted to read or write protected memory. This is ofte ...
my_world 发表于 2011-7-19 06:06 PM


各位大大,帮一帮我吧?
我发现了一些问题,就是c++的type decalaration要注意。

好像在c++里的word 在c#里要declare 成uint16,就大概没问题了
可是还是有些有问题。
作者: goodhermit95    时间: 2011-7-25 05:16 PM
C#和C++的datatype有些名字一样但是结构是不一样的东西...好像WINAPI的boolean在vb.net里面是integer还是long忘记了...
作者: jianhaw88    时间: 2011-8-10 08:04 PM
听起来好难哦。。




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5