函数调用

C++ dll的隐式与显式调用

跟風遠走 提交于 2020-03-17 03:55:32
  应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C++6.0(或者更先进的版本)在VC\bin目录下提供了一个名为Dumpbin.exe的小程序(使用方法见 VS自带工具:dumpbin的使用 ),用它可以查看DLL文件中的函数结构。另外,Windows系统将遵循下面的搜索顺序来定位DLL: 1.包含EXE文件的目录,2.进程的当前工作目录, 3.Windows系统目录, 4.Windows目录,5.列在Path环境变量中的一系列目录。   1.隐式链接   隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。实现隐式链接很容易,只要将导入函数关键字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了。下面的例子通过隐式链接调用MyDll.dll库中的Min函数。首先生成一个项目为TestDll,在DllTest.h、DllTest.cpp文件中分别输入如下代码: 1 //Dlltest.h 2 3 #include"MyDll.h" 4 #pragma comment(lib,"MyDll.lib") 5 extern "C"_declspec(dllimport) int Max(int a,int b); 6 extern "C"_declspec

jQuery源码浅析–整体架构

独自空忆成欢 提交于 2020-03-17 03:52:29
http://www.cnblogs.com/coco1s/p/5261646.html @ChokCoco 最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。 其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)优雅的处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹。 另外,阅读源码让我接触到了大量底层的知识。对原生JS 、框架设计、代码优化有了全新的认识,接下来将会写一系列关于 jQuery 解析的文章。 我在 github 上关于 jQuery 源码的全文注解,感兴趣的可以围观一下。jQuery v1.10.2 源码注解(https://github.com/chokcoco/jQuery-) 。 网上已经有很多解读 jQuery 源码的文章了,作为系列开篇的第一篇,思前想去起了个【深入浅出jQuery】的标题,资历尚浅,无法对 jQuery 分析的头头是道,但是 jQuery 源码当中确实有着大量巧妙的设计,不同层次水平的阅读者都能有收获,所以打算厚着脸皮将自己从中学到的一些知识点共享出来。打算从整体及分支,分章节剖析。本篇主要讲 jQuery 的整体架构及一些前期准备,先来看看 jQuery 的整体结构: 整体架构 不同于 jQuery

入门大数据---Scala学习

我只是一个虾纸丫 提交于 2020-03-17 03:09:25
目录 Scala是什么? Scala由谁发起? Scala环境准备 Scala之旅 Scala是什么? Scala用一种简洁的高级语言将面向对象和函数式编程结合在一起。Scala的静态类型有助于避免复杂应用程序中的错误,它的JVM和JavaScript运行时使您可以轻松访问庞大的库生态系统来构建高性能系统。 它有六大特性: 无缝JAVA互操作 Scala在JVM上运行,因此Java和Scala堆栈可以自由混合以实现完全无缝的集成。 类型推断 根据变量自动推断变量类型。 并发与分配 对集合使用数据并行操作,对并发和分发使用参与者,对异步编程使用期货。 特质 将Java风格接口的灵活性和类的功能结合在一起。提供了多重继承。 模式匹配 类似于Java的swatch...case...,但可以同时匹配类型和类型值。 高阶函数 可以将函数作为参数进行传递。 Scala由谁发起? Scala是由 Martin Odersky 发起,下面是有关他的一些简介。 Martin是EPFL(瑞士领先的技术大学)编程研究组的教授。他在整个职业生涯中一直不断追求着一个目标:让写程序这样一个基础工作变得高效、简单、且令人愉悦。他可能比世界上任何一个人写过更多的Java和Scala代码。他编写了javac,这是大部分Java程序员所使用的编译器。他也编写了Scala编译器scalac

函数进阶:闭包、装饰器、列表生成式、生成器、迭代器

吃可爱长大的小学妹 提交于 2020-03-16 19:42:41
名称空间 命名空间(又称“名称空间”): 存放名字的地方 (概念性的东西)。例如:变量x = 1, 1存放在内存中,命名空间就是存放名字x与1绑定关系的地方。 名称空间有3种: locals:是函数内的(或者是locals所在的那一层的)名称空间|,包括局部变量和形参 globals:全局变量 builtins: 内置模块的名字空间 不同变量的作用域不同就是由这个变量所在的命名空间决定的 作用域即范围: 1. 全局范围: 全局存活,全局有效 2. 局部范围: 临时存活, 局部有效 查看作用域方法: globals() locals() 作用域的查找顺序: LEGB L: locals E: enclosing (相邻的) G:globals B: builtins 闭包: def func(): n = 10 def func2(): print('func2:', n) return func2 # 没有执行func2, 只是把func2的函数名(func2的内存地址) f = func() #执行func函数, 此时func()得到的结果是func2的内存地址,即f就是func2的内存地址 f() # 执行f, 由于f就是func2的内存地址,此时执行的就是func2函数 # 输出结果: # func2: 10 # 在函数(func)外部执行了函数内部的子函数(func2)

C++(四十四)之函数调用符

南楼画角 提交于 2020-03-16 18:13:50
本篇我们主要讲解函数符号的重载。 函数符号(),那么他的重载有什么用呢。 目前我们先了解到,函数符号可以用来做仿函数就可以了。 下面我们举例说明一下: /**************************************************** * brief : ()函数符重载 * author : shao * date : 2020-03-13 * note : 要注意的是,仿函数和构造函数 * 在调用时候的区别。 * ****************************************************/ #include <iostream> using namespace std; class Add{ public: int val1; int val2; Add(int v1, int v2) { this->val1 = v1; this->val2 = v2; } Add(int a) { this->val1 = a; } /* * 这里对函数调用符号进行重载, * 方面后面对象可以直接调用()符号 * 可以用对象直接写仿函数的形式, * 这里只是写了一个int个例, * 用户可以根据不同的要求写出不同的类型 */ int operator()(int a, int b) { return a + b; } }; void

jquery学习笔记---插件开发模式和结构

被刻印的时光 ゝ 提交于 2020-03-16 10:51:49
JQuery插件开发 http://www.cnblogs.com/damonlan/archive/2012/04/06/2434460.html github教程 :https://github.com/i5ting/How-to-write-jQuery-plugin jQuery插件开发 一般来说,jQuery插件的开发分为两种:一种是挂在jQuery命名空间下的全局函数,也可称为静态方法;另一种是jQuery对象级别的方法,即挂在jQuery原型下的方法,这样通过选择器获取的jQuery对象实例也能共享该方法。 一、 在讲解jQuery插件基本结构和模式前,先介绍下两个重要的方法,还有不知啥原因,代码无法折叠,导致整体篇幅稍微有点长,阅读时请加点耐心: 1、$.extend(target, [object1], [objectN]) 该方法主要用于合并两个或更多对象的内容(属性)到第一个对象,并返回合并后的第一对象。如果该方法只有一个参数target,则该参数将扩展jQuery的命名空间,即作为静态方法挂在jQuery全局对象下,如jQuery里的$.ajax、$.getJSON全局函数等: // 将hello方法挂在jquery全局对象下,作为静态方法 $.extend({ hello: function() {alert("hello");} }); 又如

JavaScript的自调用函数

[亡魂溺海] 提交于 2020-03-16 08:59:20
函数表达式可以 "自调用"。 自调用表达式会自动调用。 如果表达式后面紧跟 () ,则会自动调用。 不能自调用声明的函数。 通过添加括号,来说明它是一个函数表达式: <script> (function () { document.getElementById("demo").innerHTML = "Hello! 我是自己调用的"; })(); </script> 以上函数实际上是一个 匿名自我调用的函数 (没有函数名)。 在页面加载时,就会调用 来源: https://www.cnblogs.com/sevene/p/12501736.html

阻塞,非阻塞,同步,异步

為{幸葍}努か 提交于 2020-03-16 06:28:15
先说说阻塞与非阻塞,这主要和程序等待消息时的状态有关 1、阻塞 程序会阻塞在某一个函数,而不往下执行,就如挂在那里一样,所有的其他业务也都不执行,为一直等到消息到来才往下执行。 2、非阻塞 程序不会阻塞在某一个函数,不等待消息到来,立即返回,往下执行。 举个例子,TCP协议中的send,系统会为其分配一块发送缓存区,假设现在总的缓存 区的大小为1000.,而缓存区里已经有了500个数据,这时调用send,发送1000个字节数据,这时如果在阻塞模式下,send的会先最多的数据放入缓存,直到缓存区满,然后程序就会阻塞在那里,一直等到将所有数据全部发出去为止,而如果在非阻塞模式下,send的会先将最多的数据放入缓存之后,就马上返回,剩余数据下回接着发送,不会卡在send函数中。 同步和异步这两个概念,其实是与消息通知机制有关的。 1、同步 发送消息,等待消息处理完后,才往下执行。就如MFC里的SendMessage(), 2、异步 发送消息,不等待消息处理完,就往下执行,让后通过特定的接口或者事件,消息通知你事情完成了。如MFC里的PostMessage() 粗略的讲了一下以上的两个概念,估计大家会问,那么阻塞与同步,非阻塞与异步有啥区别,用例说明。 比如我们现在去银行,你可以选择两种方式,取票等待和排队等待,如果你排队等待,你就得等前面所有人都办理完了,才能办理业务

C语言函数

可紊 提交于 2020-03-16 02:00:58
C语言函数 一、函数 C语言程序是由函数构成的,每个函数负责完成一部分的功能,函数将工恩呢该封装起来,以供程序调用。 二、函数定义 目的:将一些常用的功能封装起来,以供日后调用。 步骤:确定函数名,确定函数体,调用 格式:返回值类型 函数名(形式参数列表) { 函数体 } 三、函数调用 定义函数需要明确定的东西: ①. 取一个有意义的函数名 ②. 确定函数的形参 ③. 编写函数体 ④. 返回值 示例: Int average(int num1,int num2) { Return (num1+num2)/2; } int main() { Int a=1; Int b=3; Int c=average(a,b); //调用函数 Return 0; } 四、参数 ①. 形参:定义函数时,函数名后面的参数 如num1和num2 ②. 实参:调用函数时,传人的具体数据 如a和b ③. 形参和实参的个数必须相等 ④. 函数体内部不能定义和形参同名的变量 ⑤. 如果是基本的数据类型作为形参,则是纯粹的值传递,修改函数内部形参的值并不会影响到实参的值 ⑥. 一个函数可以没有形参,也可以有无限个形参 五、函数的返回值 (一)Return 的作用: ①. 退出函数 ②. 返回一个具体的值给函数的调用者 (二)返回值使用注意: ①. C语言是弱语法弱类型的语言,非常不严格 ②.

JavaScript面向对象

限于喜欢 提交于 2020-03-15 23:19:50
概念 OO:Object Oriented(面向对象,详细概念见区别) OOP(Program)面向对象编程 OOD(Design)面向对象设计 OOA(Analysis) 区别 面向过程 关注方法步骤 在分析问题时,提取出解决问题的方法和步骤,然后通过函数一步步实现,并依次调用 面向对象 (实质是对面向过程的进一步抽象) 关注对象本身 把要解决的问题中的数据和方法组织为一个整体(对象)来看待,是我们对现实事物的抽象。 注意: 面向过程和面向对象这两种编程方式,都是用来编写程序,解决我们实际需求以及问题的。 二者示例对比:开车 面向过程的开车:先打开车门,上车,系好安全带,把车钥匙插入,点火。。。。 面向对象的开车:找一个司机,开车 基本构成 对象 (具体) 问题域中关注的具体的某一事物(对象因关注而产生) 类 (抽象) 具有相同性质和行为的一组对象的抽象(分类) 在代码中起“模具”作用 大驼峰命名是类的标志(注意:并不是说只要大驼峰命名就是类,或者不使用大驼峰命名就不是类了,只是一种标志,便于开发者区分) 关系:类是对象的抽象,对象是类的实例。 所有对象都是类创建的,所以对象又称为实例对象。用类创建对象的过程叫做实例化。 ES6语法糖 //ES6 class----模版 class Person { constructor(name, age, gender) { this