新手之自动转存DLL——20150626星期五

-------------------菜鸟错例一:---------------------------------------------

int a=0;

if()

{

int a = GetType();

}

这时a = -858993460

很典型的没有初始化的返回值错误。

正确是if里边的a,不能加int。不然相当于又新定义一个小局部变量。

----------------------二-----------------------------------------------------

2.1

进程加锁一对好兄弟不要分开他们TvT

构造和函数和析构函数一一对应不偏不倚 TvT

 1 CRabbit::CRabbit(void)
 2 {
 3     C_Init();
 4     m_pMsgContext = NULL;
 5     m_pStreamContext = NULL;
 6     m_pfunOutputStream = NULL;
 7     m_pfunPlatformMsg = NULL;
 8     m_nMaxNum = 0;
 9     InitializeCriticalSection(&m_csListCarrot);
10 }
11
12 CRabbit::~CRabbit(void)
13 {
14     C_UnInit();
15     m_pMsgContext = NULL;
16     m_pStreamContext = NULL;
17     m_pfunOutputStream = NULL;
18     m_pfunPlatformMsg = NULL;
19     m_nMaxNum = 0;
20     EnterCriticalSection(&m_csListCamera);
21     while(m_listCarrot.size())
22     {
23         LPC_NodeData p = m_listCarrot.front();
24         delete p;
25         m_listCarrot.pop_front();
26     }
27     LeaveCriticalSection(&m_csListCarrot);
28     DeleteCriticalSection(&m_csListCarrot);
29 }

2.2

初始化 ——> 操作 ——> 释放or删除。

关于字符串的输出:

1     char  buff[70];
2     memset(buff,0,sizeof(buff));
3     strcpy(buff,pNode->cName);
4     sprintf(buff+strlen(buff),"[%d]--%lu",pNode->nNodeID,pNode->hNode);    

如果节点pNode名字是Rabbit,ID是233,hNode是484,

那么输出效果为:

Rabbit[233]--484

----------------------------------------三-----------------

程序进程有问题,导致进程被卡住,再次调试就出错,Cannot open the faile XXXX

退进程,再调试。

时间: 2024-08-29 20:51:15

新手之自动转存DLL——20150626星期五的相关文章

自动加载dll,加载dll中程序集的信息。

自动加载程序集,解析程序集中的方法. 1 private static object Invoke(string lpFileName, string Namespace, string ClassName, string lpProcName, object[] ObjArray_Parameter) 2 3 { 4 5 try 6 { // 载入程序集 7 8 Assembly MyAssembly = Assembly.LoadFrom(lpFileName); 9 10 Type[] t

Qt打包部署程序自动查找依赖DLL工具windeployqt

qt编译好一个exe程序之后,部署到一台没有开发环境的机器上,需要一起拷贝其依赖的dll文件.这时需要一个windeployqt工具来帮忙,因为手动拷贝的话容易遗漏. https://blog.csdn.net/graceland525/article/details/52167944 上面的链接可以参考 cmd进入编译好的exe目录,假设D:/ABC/abc.exe windeployqt abc.exe即可 原文地址:https://www.cnblogs.com/coolbear/p/10

[转]Delphi 中动态链接库(dll)的建立和使用

动态链接库是一个能够被应用程序和其它的DLL调用的过程和函数的集合体,它里面包含的是公共代码或资源.由于DLL代码使用了内存共享技术,在某些地方windows也给了DLL一些更高的权限,因而DLL中可以实现一些一般程序所不能实现的功能,如实现windows的HOOK.ISAPI等.同时,DLL还为不同语言间代码共享提供了一条方便的途径.因而DLL在编程时应用较为广泛,本文将介绍如何在 Delphi 中建立和使用DLL. 一.DLL 库内存共享机制 从使用效果看,DLL和unit 很像,它们都可以

用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法

问题: 在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行.双击提示: "无法启动此程序,因为计算机中丢失mfc100.dll 尝试重新安装该程序以解决此问题." 解决方案: 方案一 采用静态编译使用VS2010编译的程序在windowsxp中运行时,经常会出现找不到相关的DLL文件,我们可以使用静态编译的方法把这些运行依赖文件打包到*.exe中来,以减少对环境的依赖. 一般可以配置以下两项: 项目 -< **属性 -< 配置属性-<

QT5.4 计算器程序 打包&amp;发布,解决dll的最新解决方案(图文并茂,很清楚)

QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一份,放在软件的目录里面. 参考官方文档:http://doc.qt.io/qt-5/windows-deployment.html#application-dependencies 具体使用步骤如下: 1.添加qt的bin/目录进系统path变量.很简单,在系统属性里设置,添加D:\QT\QT5.4

VS2013 生成事件,删除不必要的DLL

解决方案中有一个 Project 是 Windows Service,用来从消息队列中取出事件,发送通知电邮: UI是一个MVC网站,两个Project都引用了同一个类库,这个类库引用了第三方的生成PDF组件 Pechkin: 我每次生成网站时,Pechkin的7个DLL都会自动拷贝到 bin 目录,7个DLL加起来30几兆,而且网站运行时就会报错(修改IIS应用程序池可以解决),害我每次调试网站,都要手动从BIN目录删除这些DLL,很耽误效率, 其实只有 Windows Services 项目

QT5.4 计算器程序 打包&amp;发布,解决dll的最新解决方案

QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一份,放在软件的目录里面. 参考官方文档:http://doc.qt.io/qt-5/windows-deployment.html#application-dependencies 具体使用步骤如下: 1.添加qt的bin/目录进系统path变量.很简单,在系统属性里设置,添加D:\QT\QT5.4

[原]使用SevenZipSharp出现&ldquo;Can not load 7-zip library or internal COM error! Message: DLL file does not exist.&rdquo;的解决方案

如果你是从nuget上下载安装的SevenZipSharp库,当你写好相应代码,兴冲冲的启动程序进行测试时,以下画面会让你受到当头一棒: 究其原因,是因为SevenZipSharp只是native 7z库的C# Wrap,所以你要让程序能够正常运行,还需要有7z的运行时库(但诡异的是SevenZipSharp既没有自己附带,也没有写入依赖项). 可以打开nuget,下载安装7z或7z.Libs,设置7z.dll为始终拷贝.然后再次启动程序. 如果依然出现这个错误,说明SevenZipSharp没

深入Delphi下的DLL编程

深入Delphi下的DLL编程 作者:岑心 引 言 相信有些计算机知识的朋友都应该听说过“DLL”.尤其是那些使用过windows操作系统的人,都应该有过多次重装系统的“悲惨”经历——无论再怎样小心,没有驱动损坏,没有病毒侵扰,仍然在使用(安装)了一段时间软件后,发现windows系统越来越庞大,操作越来越慢,还不时的出现曾经能使用的软件无法使用的情况,导致最终不得不重装系统.这种情况常常是由于dll文件的大量安装和冲突造成的.这一方面说明DLL的不足,另一方面也说明DLL的重要地位,以至我们无