第6讲 autocad内部命令调用及用户交互

第6讲 autocad内部命令调用及用户交互

ID:12917469

大小:852.50 KB

页数:58页

时间:2018-07-19

第6讲 autocad内部命令调用及用户交互_第1页
第6讲 autocad内部命令调用及用户交互_第2页
第6讲 autocad内部命令调用及用户交互_第3页
第6讲 autocad内部命令调用及用户交互_第4页
第6讲 autocad内部命令调用及用户交互_第5页
资源描述:

《第6讲 autocad内部命令调用及用户交互》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6讲AutoCAD内部命令调用及用户交互主讲人:刘德儿2、使用AutoCAD内部命令主要内容3、和用户交互4、选择集1、C++类型转换成C#类型1、C#调用dll时的类型转换C++(Win32)C#char**作为输入参数转为char[],通过Encoding类对这个string[]进行编码后得到的一个char[]作为输出参数转为byte[],通过Encoding类对这个byte[]进行解码,得到字符串C++Dll接口:voidCplusplusToCsharp(inchar**AgentID,outchar**AgentI

2、P);C#中的声明:[DllImport("Example.dll")]publicstaticexternvoidCplusplusToCsharp(char[]AgentID,byte[]AgentIP);C#中的调用:Encodingencode=Encoding.Default;byte[]tAgentID;byte[]tAgentIP;string[]AgentIP;tAgentID=newbyte[100];tAgentIP=newbyte[100];CplusplusToCsharp(encode.GetChar

3、s(tAgentID),tAgentIP);AgentIP[i]=encode.GetString(tAgentIP,i*Length,Length);1、C#调用dll时的类型转换HandleIntPtrHwndIntPtrint*refintint&refintvoid*IntPtrunsignedchar*refbyteBOOLboolDWORDint或uint(int更常用一些)枚举类型Win32:BOOLMessageBeep(UINTuType//声音类型);其中的声音类型为枚举类型中的某一值。C#:用户需要自己定

4、义一个枚举类型:publicenumBeepType{SimpleBeep=-1,IconAsterisk=0x00000040,IconExclamation=0x00000030,IconHand=0x00000010,IconQuestion=0x00000020,Ok=0x00000000,}C#中导入该函数:[DllImport("user32.dll")]publicstaticexternboolMessageBeep(BeepTypebeepType);C#中调用该函数:MessageBeep(BeepType

5、.IconQuestion);1、C#调用dll时的类型转换结构转换Win32:使用结构指针作为参数的函数:BOOLGetSystemPowerStatus(LPSYSTEM_POWER_STATUSlpSystemPowerStatus);Win32中该结构体的定义:typedefstruct_SYSTEM_POWER_STATUS{BYTEACLineStatus;BYTEBatteryFlag;BYTEBatteryLifePercent;BYTEReserved1;DWORDBatteryLifeTime;DWORDB

6、atteryFullLifeTime;}SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS;1、C#调用dll时的类型转换C#:用户自定义相应的结构体:structSystemPowerStatus{byteACLineStatus;bytebatteryFlag;bytebatteryLifePercent;bytereserved1;intbatteryLifeTime;intbatteryFullLifeTime;}C#中导入该函数:[DllImport("kernel32.dll")]

7、publicstaticexternboolGetSystemPowerStatus(refSystemPowerStatussystemPowerStatus);C#中调用该函数:SystemPowerStatussps;….sps初始化赋值……GetSystemPowerStatus(refsps);1、C#调用dll时的类型转换字符串对于字符串的处理分为以下几种情况:1、字符串常量指针的处理(LPCTSTR),也适应于字符串常量的处理,.net中的string类型是不可变的类型2、字符串缓冲区的处理(char*),即对于

8、变长字符串的处理,.net中StringBuilder可用作缓冲区1、C#调用dll时的类型转换--字符串实例Win32:BOOLGetFile(LPCTSTRlpRootPathName);C#:函数声明:[DllImport("kernel32.dll",CharSet=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。