c++/CLI netFrame
文章平均质量分 92
kele37526
自己自知
展开
-
net frame 中的数据类型转换 String^ int
<br /><br />net Frame中基本数据类型的转换<br />见Convert类<br /> <br />可以满足大多数的数据类型的转换 <br />见帮助,可以到csdn的资源下载中下载类库查看工具 wincv.exe<br /> <br />eg:<br /> <br /><br /> //to find by convert<br /> <br />String^ strTest = gcnew String(" ");<br /> <br /> int ikkk = 890;<br />原创 2011-01-05 19:13:00 · 407 阅读 · 0 评论 -
net 下输出调试信息
<br /> <br />在vc中可以使用trace宏打印调试信息<br />在netframe中就不行了。<br /> <br />可以使用Debug类进行输出调试信息<br /> <br />e.g:<br /> <br /> <br /><br /> Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );<br /> Debug::AutoFlush = true;<br /> Debug::Indent();<b原创 2011-01-05 19:18:00 · 439 阅读 · 0 评论 -
cli 调用 c++ dll 链接错误 LNK2028 LNK2019
最近写一个cli程序(B)对另一个c++dll(C)进行包装 再由Csharp程序(A)通过调用B,调用C中的函数/类。C编译真确, 编译B时出现如下链接错误错误 error LNK2028: 无法解析的标记(0A00000C) "public: __thiscall CXXXKPlateLimit::MyLibName(void)" (??0CKkkkPlateLimit@@$$FQAE@XZ),该标记在函数 "public: int __clrcall clrLimite::笑嘻嘻inder::Fi原创 2011-05-11 15:55:00 · 2722 阅读 · 0 评论 -
关于 CSharp 调用 C++ dll
由于c#和Cli的执行码可以通过反汇编得到源码(只是听说,没有实际操练)。对于一些不想公开的代码,可以用c++编写再由 C#。从网上找到了几个方法1:c#->c++2:c#->cli->c++具体描述参见:http://www.cppblog.com/mzty/archive/2008/03/12/44280.html个人认为 方法1:过于繁琐,在C#工程中还要对输出函数进行再声明,更重要的是 在调试时经常会警告堆栈不匹配造成冲突(很烦)相比较方法2虽然还有增加cli工程,但思路比较清楚,简单我推荐。不过要原创 2011-05-12 08:58:00 · 1342 阅读 · 0 评论 -
c++ rvalue 的在派生类中的使用,注意事项
用c++11的新增rvalue 进行拷贝构造 ,赋值函数重载 。但在执行时却调用左值拷贝构造,赋值函数 最终发现是在拷贝构造,赋值函数中调用基类的对应的右值拷贝构造,赋值函数有误。 现记录更正如下 class a { a(const&rhs){} { } a& operator=(const a&& rhs) { } }; class原创 2012-09-11 14:58:11 · 292 阅读 · 0 评论 -
GooglTest GoogleMock 实践感想三
googletest 过滤器失效: 通过在 int _tmain(int argc, _TCHAR* argv[]) 中设置 testing::GTEST_FLAG(filter) = "testsuit.*"; 后再注销 该过滤器,执行全部的测试suit时,显示仍旧执行根据以上过滤器的用例。 将工程的×.vcxproj.user删除后 运行正常原创 2012-09-11 15:05:20 · 673 阅读 · 0 评论 -
Boost 的事件管理架構:Signal / Slot
Boost 的事件管理架構:Signal / Slot 分类: window编程 Linux编程2012-01-09 17:40 64人阅读 评论(0) 收藏 举报 Boost 的事件管理架構:Signal / Slot(上) 这篇文章写的很好,但国内需要翻墙才能看到,故转载至此,方便大家 转载:http://kheresy.wordpress.com/2011/转载 2012-03-19 21:55:42 · 1079 阅读 · 0 评论 -
c++ vector 如何释放内存
1: 1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小。先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧空间,这样性能难以接受。因此STL实现者在对vec转载 2013-10-30 16:12:29 · 3086 阅读 · 3 评论 -
利用Qwaitcondition 控制生产消费者协作
通过分析以下的例子发现: 多线程协作/同步的关键是:如何有效的设计并利用好多个线程之间公共操作的对象,以及相关的变量。 如下 :如果每个线程不共用一个numUsedBytes来标识buff的元素索引的话将会大大的增加消费者和生产者的协作难度。 及利用numUsedBytes来如何控制好 buffer[i % BufferSize] 不会取到生产者还没有向buff中写入的元素 #incl原创 2013-12-18 16:38:01 · 691 阅读 · 0 评论