2011年8月22日

C# 下添加C++动态库

摘要: 这个网上很多。但是没有能运行起来的。自己经过一周多的摸索进行稍微总结下。首先是C++下的声明:头文件:extern "C" _declspec(dllexport)int Add(int sm);Cpp文件:int Add(int sm){ int insx=20; sm=insx+sm; return sm;}生成dll把所生成的拷到C#的bin/debug下在C#下调用:[DllImport("mediastream.dll", EntryPoint = "Add", CharSet = CharSet.Auto, Calling 阅读全文

posted @ 2011-08-22 17:35 静幽独白 阅读(679) 评论(1) 推荐(0) 编辑

2011年8月18日

IPServer的实现3-机顶盒。

摘要: 分析:要组播接收的方式接收交换机的数据。图像要显示出来(由于发送时设定了发送包的大小所以还要组包)。接收数据和显示代码如下:UINT ReceiveShowCh1(void *p){ CMultSocket m_SocketCh; CCh1Dlg *pDlg=(CCh1Dlg*)p; CString m_strIP; CString m_strPort; pDlg->m_IPAddrCh1.GetWindowText(m_strIP); pDlg->m_PortCh1.GetWindowText(m_strPort); pDlg->m_Port1=atoi(m_strPort 阅读全文

posted @ 2011-08-18 11:18 静幽独白 阅读(272) 评论(0) 推荐(0) 编辑

IPServer的实现2-模拟交换机。

摘要: 上次说服务器的实现。下面说下交换机的实现(有点多):分析:服务器和交换机的通信是一对一的。而交换机接收到数据还要把数据转发给机顶盒。而交换机-->机顶盒是通过组播。1、交换机接收服务器的实现:UINT RecvSendSTB1(void *p){ struct sockaddr_in addr; int MultSock; CIPTVSwitchDlg *pDlg=(CIPTVSwitchDlg*)p; CString strIP; CString m_strPort; pDlg->m_IPAddr1.GetWindowText(strIP);//从界面获取IP pDlg-> 阅读全文

posted @ 2011-08-18 10:53 静幽独白 阅读(328) 评论(0) 推荐(0) 编辑

2011年8月16日

IPServer的实现

摘要: 1、建立一个MFC工程2、添加static Text3、添加button4、双击button开始写自己的代码。在这里只写出通道一的实现。button事件代码如下: CFileDialog FDialg(TRUE, NULL, NULL, OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT, "JPEG files (*.jpg)|*.JPG|BMP files(*.bmp)|*.BMP|all files (*.*)|*.*||",NULL); if(FDialg.DoModal() == IDOK ) { m_strFileName=FDialg. 阅读全文

posted @ 2011-08-16 13:57 静幽独白 阅读(682) 评论(0) 推荐(0) 编辑

2011年8月15日

模拟IPTV(中兴捧月2011)

摘要: 中兴捧月2011的一个题目:把自己做的内容做个总结(反正没晋级,权当自己玩玩吧)。题目要求:1. 用一个GUI程序模拟视频服务器:1) 视频服务器包含3个频道节目CH1、CH2、CH3,每个频道内容分别如下: CH1:静态显示一幅位图; CH2:屏幕中央显示形式为(H:M:S)的24时制时钟字符串; CH3:一个小正方形,以某个半径围绕屏幕中间点做顺时针旋转。2) CH1的图片可以从硬盘上选择,便于后续验证。 CH2的时钟字符串初始时间可以通过程序界面设置,便于后续验证。 CH3小正方形的旋转半径和速度可以通过程序界面设置,便于后续验证。3) 视频服务器可以提供界面,显示当前3个频道实时播放的 阅读全文

posted @ 2011-08-15 20:34 静幽独白 阅读(353) 评论(0) 推荐(0) 编辑

转载:C#调用DLL的研究

摘要: C#程序实现动态调用DLL的研究摘要:在《csdn开发高手》2004年第03期中的《化功大法——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供了一种解决方案。这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也有相似的VB程序,但在某一技术论坛上提起这种设计方法时,有网友提出:“这种方法好是好,但就是启动速度太慢”。这是因为程序启动时实现DLL释放,然后再加载释放出来的DLL,这个过程会 阅读全文

posted @ 2011-08-15 09:16 静幽独白 阅读(598) 评论(0) 推荐(0) 编辑

2011年8月10日

error C2371 int_fast16_t 重定义不同的基类型

摘要: 编译DLL时出现这个错误。通过错误提示发现和VC2010中的一个类型相同了(原来代码是VC6.0)。解决方法: 在自己代码前面加#if _MSC_VER < 1600。。。。。。#endif;中间是出错部分。PS:还不明白为什么是加_MSC_VER < 1600;应该是版本的原因吧。希望高人指点。 阅读全文

posted @ 2011-08-10 15:11 静幽独白 阅读(2434) 评论(0) 推荐(1) 编辑

2011年8月9日

VC2010 中出现“触发一个断点,其原因可能是堆被损坏” 的错误。

摘要: 在代码聪 VC6.0 转到 VC2010上时出现:Windows 已在 ****.exe 中触发一个断点。其原因可能是堆被损坏,这说明 ***.exe 中或它所加载的任何 DLL 中有 Bug。原因也可能是用户在 ****.exe 具有焦点时按下了 F12。输出窗口可能提供了更多诊断信息。的错误。找了下。是说new的变量没delete(但是我确实delete了)。代码多次检查。发现,变量的作用域问题。我声明时是在一个循环前。而我是在循环结束的时候delete的。在循环外边delete就可以了。PS:在VC6.0上是没问题的。而且就C++语言规则来说,是可以在循环里面delete的。具体为什么还 阅读全文

posted @ 2011-08-09 17:30 静幽独白 阅读(4625) 评论(0) 推荐(0) 编辑

2011年8月8日

C# 树形控件节点拖动

摘要: 在C#环境下实现树形控件节点的拖动。废话不多说先上图。。拖动选中的节点。然后释放。。拖动部分的代码:首先把树形控件和面板的属性AllowDrop改为True。树形控件的ItemDrag事件:private void treeView1_ItemDrag(object sender, ItemDragEventArgs e){ if (e.Button == MouseButtons.Left) { DoDragDrop(e.Item, DragDropEffects.Move); isMouseDown = true; } }树形控件的DragEnter事件:private void tree 阅读全文

posted @ 2011-08-08 19:05 静幽独白 阅读(1800) 评论(0) 推荐(1) 编辑

测试。

摘要: 测试。看看怎么玩。 阅读全文

posted @ 2011-08-08 11:26 静幽独白 阅读(114) 评论(0) 推荐(0) 编辑

导航