如何编写一个软件
大体上明白你是什么意思了,如果你自己想做OA类的软件,那么软件的功能多少直接影响到了你需要多少的人力来开发。
如果你想自己弄的话,也不验证,先想好用什么架构,是用B/S的(浏览器/服务器,通常指使用网页浏览器作为客户端,如php,jsp,asp等等),还是用C/S的(即客户端/服务器,通常指导使用自己使用C++,JAVA等语言编写的客户端程序与服务器之间进行通讯)。
想好架构后再选择使用的语言, 完成后再选择相应的数据库就开始着手吧。
这方面的书籍很多的,建议你可以参考下www.china-pub.com这个网站,上面计算机方面的书还都不错。
你至少掌握一门语言,一种类型的数据库,对程序设计理念多少有些了解。
...
如何自己编程序做软件?
首先。
。
。
先别想着用什么技术、什么工具。
你要确定你要开发的软件用来处理什么业务的。
然后你就从软件工程的角度出发,做可行性研究报告、需求分析、概要设计、详细设计、数据库设计、Coding、测试文档的编写(包括单元测试和集成测试)、编写用户手册(也就是所谓的帮助文档)。
为什么做个软件要这么复杂呢。
我认为要做的话就做得有意义点,不要自己天天在写程序,做出来的东西是不是真的有作用,有意义。
以此也能锻炼你的软件设计水平和编程水平。
等你的各项需求完善了,开始编写代码的时候,需要先把整个系统的架构进行设计分析,这方面包括的东西很广,自己有空可以慢慢了解;主要是技术的选型,根据你的业务处理的要求选择你要使用的技术,至于说用什么开发工具,因人而定。
喜欢哪个就用哪个。
...
程序代码写好后,怎么样变成软件
(转自别人的答案!!!) 不晓得是我太笨,还是大家太笨,我觉得大家要么没看出楼主的意思,要么,要么没讲清楚问题。
还是让老夫来说说吧: 首先,楼主所谓的学C,学算法,实际上就是说学会了编写代码,即知道让计算机先干什么,再干什么,最后得什么结果。
他遇到的问题是,没有一个界面让他输入数据,因为他看到的几乎所有软件,都具有输入框、“确定”、“取消”、“关闭”之类的按钮,而他不知道从哪儿弄到这些按钮。
其次,我觉得楼主要有必要建立一些“面向对象程序设计”的观念,具体我不多说,楼主可以自己查。
希望大家不要嫌我罗嗦,因为我觉得,要为楼主解决问题很简单,但要让楼主知道为什么会有这样的迷惑,则须多说几句。
在上世纪九十年代以前的微机,也就是人们说的286,386时代,计算机的运行速度还很低,那时候的计算机几乎不需要用到鼠标,也几乎没什么图形界面,没音响,没彩色……当然也没有windows操作系统,人们操作计算机,大都是用的DOS操作系统。
屏幕是黑的,字符是白的,人们输入一组字符串组成的命令,回车,计算机就开始执行,执行完后,再由人输入下一组命令。
其界面相信楼主见识过,因为楼主似乎能将原代码变成exe文件,运行时跳出一个黑框来,程序在黑框中运行。
实际上,那个黑框就是DOS操作系统的界面,只不过以前的计算机上,这个界面占据了整个屏幕,而现在,却是一个窗口。
也就是说,windows操作系统为了方便老用户,提供了这样一个功能:可以运行DOS操作系统的程序,只不过不是占据整个屏幕,而是将其显示在一个窗口中。
人们可在里面运行DOS程序,就同当年使用DOS操作系统一样。
楼主所学的TC,就是那个时代的程序设计软件,由于几乎不需用到图形界面,当然也没有提供相应的按钮,窗体等功能。
假如你非要一个按钮,那么你先得掌握绘图语句,如画线,画点,填色等等。
在公元2000年以前,湖南教育界的计算机一级考试系统界面中的那几个按钮就是这样完成的。
另外,我最初学用qbasic语言设计界面时,也是这样做的,画个按钮形状,当遇到回车键时,再画个被按下去的形状,半秒种后让它又恢复弹起的形状……总之,麻烦。
随着计算机软、硬件的高速发展以及鼠标,音响,图片,动画在计算机中的大量应用,DOS操作系统已如昔日黄花,退出了历史舞台。
windows的普及,使得人们能够更方便,直观的操作电脑。
那么新兴起的软件,当然需要经常用到诸如菜单、按钮,图标,滚动条,进度条,文本框之类的东西,我们把它叫做控件,在面像对像程序设计中,一个已绘好的控件就可以理解为一个对像。
显然,每编一个程序都去画这些东西是相当烦人的,所以微软公司在后来提供的软件开发工具,比如visual c++中,就直接提供这些控件让人们使用,因为绘制各种控件的方式虽然麻烦,但其过程大致是相同的,所以人们只需给出诸出高度,宽度,名称之类的参数,而把绘制的过程交给了编译程序,就好像在word里面画一张表格一样,你只需用鼠标一拖,它就自己给你画好了。
实际上产生的绘制语句代码,可以从头文件里找到,不过我估计没多少人去研究这些无多大意义的过程。
为了便于理解,以VC++6.0为例:启动程序--新建--在“工程”栏选择“MFC AppWizard”,工程名字随便填,确定--单选“基本对话框”,然后点“完成”--最后确定。
这时你可以见到一个面板,他就是你将要设计的程序的界面。
初始时只有“确定”、“取消”两个按钮,当然,旁边还有一个工具箱,上面有很多其它的控件,需要的话你自己加,比如你想要两个框框输入数据,就可从工具箱中选“编辑框”,画两个就是。
楼主希望按“确定”后,显示较大的数,则应该对着“确定”按右键,选“事件”,将相应的代码写在clicked事件里面,若想双击“确定”后显示,就将相应代码写在doublecliced事件里……要说更具体的操作,比如改变字体、大小、颜色、文字对齐方式等等,那是一门完整的课程,这里我就不谈了,楼主可以自己查相关资料。
幸运的是,VC几乎完全兼容TC,所以TC里面设计的源程序,只要作少量的修改,就可以在VC上运行。
说到这儿,最起码楼主的问题应该解决了,即TC本身不提供“输入框”、“确定”之类的控件,因为他不是为windows操作系统设计的开发工具,如果你非要用,就只能用其提供的绘图语句去画,那不是一般的麻烦,当然你不介意的话,可以画着玩玩,然后作成一个模板函数保存吧。
如果你嫌麻烦,算了,还是将就着用"scanf"之类的函数吧,虽然不美观也不方便,但用久了就习惯了……在DOS中,一个程序甚至就可以理解为一个软件。
而在windows中,则可能需要很多相对独立却又彼此关联的程序,共同完成软件功能。
比如,单击“确定”时该执行的程序;单击“取消”时该执行的程序。
所有这些程序和控件的集合被称为“工程”,狭义上的一个“软件”就是一个“工程”,而广义上的软件,则还包括帮助文件,说明文档,需求分析,数据流图,调试维护记录,客户说明书等等一系列乱七八糟的东西。
具体可参考“软件工程”一类的书籍...
什么是第三方软件啊……
解释一:第一方就是你自已,第二方就是你要解决的问题即你的对象,用另外的软件去处理你的对象就是用第三方面的软件。
这个解释不知所云,与我临时拼凑的那句话有异曲同工之妙,到头来还是弄不清楚谁是第三方。
解释二:既非系统本身自带的软件(含操作系统本身和自带的应用程序),亦非你自己制作的软件就称为“第三方软件”。
“第三方软件”是一个相对概念,你做的软件对别人而言也成了“第三方软件”。
这个解释我认为是误导。
因为它将第三方扩大化了,凡不是操作系统自带的软件,统统划归入第三方,照此解释,Microsoft Office就应该划入第三方的范畴。
解释三:不是系统自带的,不是自己编的,是别的厂商或个人的,就是第三方软件。
这个解释是解释二的简化版。
解释四:所谓第三方软件指的是该非线性编辑系统生产商以外的软件公司提供的软件。
这个解释好象说到了点子上,但由于只是针对视频编辑方面做出的解释,所以还是有局限性,不具普遍性。
解释五:某些软件安装时所带来的额外安装软件,有时也称为第三方软件。
这个解释更没有道理。
这明显是捆绑软件,而捆绑软件常常与流氓软件挂上了钩,是为广大用户所反感的。
所以我认为还是与第三方软件脱离关系为好。
我认为第三方软件应该是这样的软件:一是指由第三方编制的某个软件的插件。
现在许多软件都提供插件功能,软件的编制方被称为官方,如果是由非官方编制的插件,可称为第三方软件。
二是指某项应用,如PDF电子书格式,是由Adobe开发的,Adobe公司就称为官方,而由非Adobe公司开发的针对PDF电子书格式的所有应用软件,都可称为第三方软件。
三是针对某种设备开发的软件,如手机,摄像机等设备,生产商一般也都开发有软件,但也有众多的编程爱好者或者组织专门针对某类设备开发出来的应用软件,就称为第三方软件。
还有嘛?好象还有,但一时也想不起来了,暂且列举这些,以此类推吧。
有第三方,似乎应该有第一、第二方。
而实际上并没有这样的称呼,第一方有个替代名词,就是官方。
第二方指软件使用者本人好象也解释的过去,但实际上确确实实没有这样的称呼,好象是因为有了个第三方,才有人硬是套个第二方罢了。
好了,既然还没有对“第三方软件”下过一个明确的定义,那我就不自量力冒昧地对这个词试着定义一下。
第三方软件是针对某种软件或应用在功能上的不足,而由非软件编制方的其他组织或个人开发的相关软件。
呵呵,好象还行。
如果看官对这个定义不满意,可补充完善;如果根本就是看法不同,也欢迎尽情拍砖。
反正我非权威人士,说了也不算数
我要安装一个软件 结果怎么都安装不了 出现这个是什么意思啊 ?求帮...
Runtime是运行时的意思,Runtime Error就是运行时错误,就是在运行期间出现的错误。
webopedia 关于 运行时错误的定义: An error that occurs during the execution of a program. In contrast, compile-time errors occur while a program is being compiled. Runtime errors indicate bugs in the program or problems that the designers had anticipated but could do nothing about. For example, running out of memory will often cause a runtime error.(运行时错误是程序执行期间发生的错误,它不同于编译期间发生的错误.运行时错误可能是程序中的毛病引起的,也可能程序并无错误,例如机器存储器不够引起) Note that runtime errors differ from bombs or crashes in that you can often recover gracefully from a runtime error.(运行时错误不同于炸弹或系统垮掉,运行时错误一般不影响操作系统运行) 具体的运行错误,要参照错误信息,分析后,想办法解决. 主要是 用到 IE的时候就出现这个 ,我平时用myie2。
上网查看了一些东西后 ,自己用 roguecleaner的软件扫描了一下,把一些垃圾广告插件都去了。
就 OK了,^_^ 。
特别是出现桌面文件夹打不开的时候吓死我了,我刚重装系统,丢了些资料。
RUNTIME ERROR SSS AT III:MMM 其中,SSS是运行错误代码,III是错误发生的程序段,MMM是错误地址。
DOS 错误代码: 1 无效DoS功能号 2 文件末找到 3 路径未找到 4 打开文件过多 5 禁止文件存取 6 无效文件句柄 12 无效文件存取代码 15 无效驱动器号 16 不能删除当前日录 17 不能跨驱动器改文件名 I/O错误 100 磁盘读错误 101 磁盘写错误 102 文件变量末赋值 103 文件未打开 104 文件未用输入方式打开 105 文件末用输出方式打开 106 无效数字格式 严重错误 150 磁盘写保护 15l 未知单元 152 驱动器未准备好 153 未知命令 154 数据CRC校验错 155 驱动器请求的结构长度错 156 磁盘定位错 157 未知媒介类型 158 扇区末找到 159 打印机缺纸 160 设备写失败 161 设备读失败 162 硬件故障 致命错误 200 被零除 201 范围检查错 202 堆栈溢出错 203 堆溢出错 204 无效指针操作 205 浮点上溢出 206 浮点下溢出 207 无效浮点运算 208 未安装覆盖管理程序 209 覆盖文件读错 210 对象未初始化 211 调用抽象方法 212 流登计错 213 集合下标越界 214 集合溢出 下面列出在编译程序时可能出现的错误,在集成环境下,Turbo Pascal将自动加载源程序并定位于出错处。
1 内存溢出 2 缺标识符 3 标识符未定义 4 标识符重定义 5 语法错误 6 实型常量错 7 整型常量错 8 字符串常量跨行 9 文件嵌套过多 10 非正常文件结束 11 行过长 12 缺类型标识符 13 打开文件过多 14 无效文件名 15 文件未找到 16 磁盘满 17 无效编译指示 18 文件过多 19 指针定义中未定义类型 20 缺变量标识符 21 类型错误 22 结构过长 24 文件分量不能为文件 25 无效字符串长度 26 类型不匹配 27 无效子界基类型 28 下界大于上界 29 缺有序类型 30 缺整型常数 31 缺常数 32 缺整型或实型常数 33 缺指针类型标识符 34 无效的函数结果类型 35 缺标号标识符 36 缺BEGIN 37 缺END 38 缺整型表达式 39 缺有序表达式 40 缺布尔表达式 41 操作数类型与操作符不匹配 42 表达式错 43 非法赋值 44 缺字段标识符 45 目标文件过长 46 未定义外部标识符 47 无效*.OBJ文件记录 48 代码段过长 49 数据段过长 50 缺DO 51 无效PUBLIC定义 52 无效EXTRN定义 53 EXTRN定义过多 54 缺0F 55 缺INTERFACE 56 无效重定位引用 57 缺THEN 58 缺T0或DOWNTO 59 未定义的向前引用 60 过程过多 61 无效类型转换 62 被零除D 63 无效文件类型 64 不能读写该类型的变量 65 缺指针变量 66 缺字符串变量 67 缺字符串表达式 68 单元循环引用 69 单元名不匹配 70 单元版本不匹配 71 单元重名 72 单元文件格式错误 73 缺IMPLEMENTATl0N 74 常数与CASE类型不相匹配 75 缺记录变量 76 常数越界 77 缺文件变量 78 缺指针变量 79 缺整型或实型表达式 80 标号不在当前块中 81 标号已定义 82 标号未定义 83 无效参数 84 缺UNIT 85 缺“;” 86 缺“:” 87 缺“,” 88 缺“(” 89 缺“)” 90 缺“=” 91 缺“:=” 92 缺“[”或“(.” 93 缺“]”或“.)” 94 缺“.” 96 变量过多 97 无效FOR控制变量 98 缺整型变量 99 此处不允许用文件和 100字符串长度不匹配 101无效字顺序 102缺字符串常数 103缺整型或实型变量 104缺有序变量 105INLINE错 106缺字符表达式 107重定位项过多 112CASE常量越界 113语句错 114不能调用中断过程 116必须在8087方式下编译 117末找到目标地址 118此处不允许包含文件 120缺NIL 121无效限定符 122无效变量引用 123符号过多 124语句部分过长 126文件必须为变量参数 127条件符号过多 128条件指令错位 130初始条件定义错 13l过程和函数头与前面定义的不匹酉 132严重磁盘错误 133不能计算该表达式 134表达式错误结束 135无效格式说明符 136无效间接引用 137此处不允许结构变量 138无SYSTEM单元不能计算 139不能存取该符号 140无效浮点运算 141不能将覆盖编译至内存 142缺过程和函数变量 143无效过程或函数引用 144不能覆盖该单元 147缺对象类...
自由签名的软件是什么意思
一般网络游戏采用辅助解释一 脚本script是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。
脚本通常可以由应用程序临时调用并执行。
各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。
举个最常见的例子,当我们点击网页上的E-mail地址时能自动调用Outlook Express或Foxmail这类邮件软件,就是通过脚本功能来实现的。
也正因为脚本的这些特点,往往被一些别有用心的人所利用。
例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用这类脚本,便会使用户的系统受到攻击。
所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。
通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。
现在的脚本语言是比较多的,一般的脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。
脚本(Script),就是含有bind和alias等命令的集合,你可以把这个集合存为一个独立的文件然后在需要的时候执行,这样就可以方便你在CS中的使用。
脚本可以存为后缀名为.cfg的文件放在cstrike文件夹下,执行时在控制台输入:exec(脚本文件名).cfg即可。
比如将一个脚本存为 buys.cfg文件,则在控制台中输入:execbuys.cfg则可以实现我们所需要的功能。
要实现一个命令只要把这一过程定义(alias)好,并且分配一个键位给这个命令,以后只要按分配好的键位,就可以实现这一过程。
所有的脚本都是通过这一方法实现的。
解释二 动态程序一般有两种实现方式,一是二进制方式,一是脚本方式。
二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令代码(如.exe文件),然后再执行。
这种编译好的程序我们只能执行、使用,却看不到他的程序内容。
脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。
因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
什么是脚本? 脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。
[编辑本段]动画术语名词解释 脚本:写剧本的人,也叫故事构成。
脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。
脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。
因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
脚本通常可以由应用程序临时调用并执行。
各类脚本被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。
举个最常见的例子,当点击网页上的Email地址时能自动调用Outlook Express或Foxmail这类邮箱软件,就是通过脚本功能来实现的。
也正因为脚本的这些特点,往往被一些别有用心的人所利用。
例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用 这类脚本,便会使用户的系统受到攻击。
所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。
通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。
系统软件是什么意思
再用 GetProcAddress() 获取想要引入的函数,链接程序会自动生成一个与之对应的 LIB 导入文件比较大的应用程序都由很多模块组成。
一般来说,DLL 是一种磁盘文件,以.dll、.EXE 为扩展名的系统文件都可以是 DLL,简单实用,但不够灵活,只能满足一般要求:一个缺点是增加了应用程序的大小。
直接调用 Win32 的 LoadLibary 函数,并指定 DLL 的路径作为参数。
LoadLibary 返回 HINSTANCE 参数。
在 Win32 环境中。
可执行程序链接到一个包含 DLL 输出函数信息的输入库文件(.LIB文件),其输出的函数一般用的是标准 C 接口,并能被 非 MFC 或 MFC 编写的应用程序所调用;DLL 的编制与具体的编程语言及编译器无关,是编制大型应用程序时的重要方式;如果没有 extern "。
Windows 系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将独立的程序模块创建为较小的 DLL (Dynamic Linkable Library) 文件,并可对它们单独编译和测试,是用 MFC 类库编写的。
明显的特点是在源文件里有一个继承 CWinApp 的类。
其又可细分成静态连接到 MFC 和动态连接到 MFC 上的。
静态连接到 MFC 的动态连接库只被 VC 的专业 版和企业版所支持。
该类 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,它会占用更多的磁盘空间。
DLL 应用程序从 CWinApp 派生,但没有消息循环。
动态链接到 MFC 的 规则 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,包括使用 MFC 的应用程序。
但是,所有从 DLL 输出的函数应该以如下语句开始:AFX_MANAGE_STATE(AfxGetStaticModuleState( )) 此语句用来正确地切换 MFC 模块状态。
Regular DLL能够被所有支持 DLL 技术的语言所编写的应用程序所调用。
在这种动态连接库中,它必须有一个从 CWinApp 继承下来的类,DLLMain 函数被 MFC 所提供,不用自己显式的写出来。
Extension DLL:用来实现从 MFC 所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从 MFC 所继承下来的类。
它输出的函数仅可以被使用 MFC 且动态链接到 MFC 的应用程序使用。
可以从 MFC 继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。
你也可随意的给你的应用程序提供 MFC 或 MFC 继承类的对象指针。
Extension DLL使用 MFC 的动态连接版本所创建的,并且它只被用 MFC 类库所编写的应用程序所调用。
Extension DLLs 和 Regular DLLs 不一样,它没有从 CWinApp 继承而来的类的对象,所以,你必须为自己 DLLMain 函数添加初始化代码和结束代码。
和规则 DLL 相比,有以下不同:1、它没有从 CWinApp 派生的对象;2、它必须有一个 DLLMain 函数;3、DLLMain 调用 AfxInitExtensionModule 函数,必须检查该函数的返回值,如果返回0,DLLMmain 也返回 0;4、如果它希望输出 CRuntimeClass 类型的对象或者资源,则需要提供一个初始化函数来创建一个 CDynLinkLibrary 对象。
并且,有必要把初始化函数输出;5、使用扩展 DLL 的 MFC 应用程序必须有一个从 CWinApp 派生的类,而且,一般在InitInstance 里调用扩展 DLL 的初始化函数。
DLL入口函数1、每一个 DLL 必须有一个入口点,DLLMain 是一个缺省的入口函数。
DLLMain 负责初始化和结束工作,每当一个新的进程或者该进程的新的线程访问 DLL 时,或者访问 DLL 的每一个进程或者线程不再使用DLL或者结束时,都会调用 DLLMain。
但是,使用 TerminateProcess 或 TerminateThread 结束进程或者线程,不会调用 DLLMain。
DLLMain的函数原型:BOOL APIENTRY DLLMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOIDlpReserved){ switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: ....... case DLL_THREAD_ATTACH: ....... case DLL_THREAD_DETACH: ....... case DLL_PROCESS_DETACH: ....... return TRUE; }}参数:hMoudle:是动态库被调用时所传递来的一个指向自己的句柄(实际上,它是指向_DGROUP段的一个选择符);ul_reason_for_call:是一个说明动态库被调原因的标志。
当进程或线程装入或卸载动态连接库的时候,操作系统调用入口函数,并说明动态连接库被调用的原因。
它所有的可能值为:DLL_PROCESS_ATTACH: 进程被调用;DLL_THREAD_ATTACH: 线程被调用;DLL_PROCESS_DETACH: 进程被停止;DLL_THREAD_DETACH: 线程被停止;lpReserved:是一个被系统所保留的参数;2、_DLLMainCRTStartup为了使用 "C" 运行库 (CRT,C Run time Library) 的 DLL 版本(多线程),一个 DLL 应用程序必须指定 _DLLMainCRTStartup 为入口函数,DLL 的初始化函数必须是 DLLMain。
_DLLMainCRTStartup 完成以下任务:当进程或线程捆绑(Attach) 到 DLL 时为 "C" 运行时的数据 (C Runtime Data) 分配空间和初始化并且构造全局 "C++"对象,当进程或者线程终止使用DLL(Detach) 时,清理 C Runtime Data 并且销毁全局 "C++" 对象。
它还调用 DLLMain 和 RawDLLMain 函数。
RawDLLMain 在 DL...
转载请注明出处51数据库 » 怎么自己写个软件是什么意思啊
丿此般幸福75695311