quark

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年6月29日

摘要: 关于C++动态库导出API相关的这几个关键字,一直困扰了许久,每次在调用C++动态库接口函数的时候,我都不得不花一些时间去“试”。但是用过之后就忘了……首先解释一下 _cdecl 和 __stdcall所代表的意义:Cdecl:调用方清理堆栈。这使您能够调用具有 varargs 的函数(如 Printf),使之可用于接受可变数目的参数的方法;StdCall:被调用方清理堆栈。这是使用平台 invoke 调用非托管函数的默认约定。我花了一些时间专门对以上这个关键字做了一些测试。结果如下(没有使用def文件):API函数声明:__declspec(dllexport) void MyMethod( 阅读全文
posted @ 2011-06-29 16:28 QuarkZ 阅读(862) 评论(0) 推荐(0)

摘要: 今天在阅读《CLR via C#》,书中说“使用foreach语句时,会在finally块中调用IEnumerator对象的Dispose方法”(第20章 异常和状态管理,P434)自己很奇怪的是,在编译foreach语句时也会生成try/finally语句块吗?会吧,不会吧!!于是自己做了如下实验: static void ILDiscoveryForeach() { var someList = Enumerable.Range(0, 10); foreach (var item in someList) ... 阅读全文
posted @ 2011-06-29 13:26 QuarkZ 阅读(408) 评论(2) 推荐(0)