精华内容
下载资源
问答
  • 在级联散射片和光通构成散射体基础上,利用多重散射理论解释了级联散射片减弱激光相干性现象。基于积分散斑统计学理论,推导了CCD积分时间T内捕获散斑图样强度自协方差函数与散斑对比度之间关系,并...
  • 结果 建立了基于毛细管的水驱剩余油模型,该模型不受毛细管表面粗糙和流态的影响,拓宽了传统“Pojseuille”方程的适用范围。结论 在并联毛细管模型中,剩余油的分布和数量主要由界面通过毛管的平均速度决定,同时受...
  • 他们成功地解释了禁闭许多性质,并坚信可以捕获(红外)路径积分测量。 在这项工作中,我们首先激发了这些合奏中非阿贝尔磁性自由度存在。 接下来,我们考虑一个简单高斯模型来说明波动。 在这种情况下,中心...
  • 大白话解释IP多播

    2019-10-06 22:59:38
    比方说我是一个班主任,着三个班,每个班30个人,每个班有自己班长。领导让我宣传19大视 频报告,我这里有源文件。对于普通单播我需要复制90个副本,给各个班长每人30份,然后班 长在自己班里每人发一份。你...

    多播引入

    比方说我是一个班主任,管着三个班,每个班30个人,每个班有自己的班长。领导让我宣传19大视

    频报告,我这里有源文件。对于普通的单播我需要复制90个副本,给各个班长每人30份,然后班

    长在自己班里每人发一份。你可能觉得这种做法很蠢,事实上互联网发展初期就是这么解决问题的。

    并不是因为人们想不到好办法,而是技术不支持!而对于多播我只需把源文件拷贝三份,每个班长

    一份,班里组织观看。同样达到了对同学们宣传的目的,但是我和班长的任务轻了很多。

    IGMP协议

    假如说上述的任务不是强制的。肯定有的同学想看,有的不想看,甚至外系的学生想来蹭课。IGMP协议

    就是解决的这个问题。首先,你外系的想来蹭课,你得告诉我一声吧,不然我们班集体播放的时候怎么知

    道要叫你。其次,有的人吧,他听了一节课以后觉得很无聊下节课不想来了,所以班长得记住下节课不用

    叫他。最后如果这个班没有一个人听,你觉得班长(路由器)还有在这个班播放的必要么。

    多播路由选择协议

    • 洪泛和剪除

    剪除很简单,就是你这个班没有人了,下次班主任就不用理你这个班了

    洪泛说的是为了避免兜圈子。实际上的互联网没有那么智能,他只知道哪些人被班主任说要听19大报告 也就

    是说他在班主任的微信通知群里。所以呀,1班班长放视频的时候会叫上2班班长,2班放的时候会叫上1班班长。

    怎么解决呢,很简单。你只听直属命令,就是班主任给你发的通知离你比较近,而班长之间的通信属于二次通信

    你每次只听你的首次通信,其他人叫你你不去。而首次当然是最快的,是唯一的,所以,你就不会“兜圈子”

    • 隧道技术

    这里解决的问题是,有些班长吧,他说我们班没钱,没有多媒体,不支持集体放映。老师,你看着办,老师怎么

    办呢,隧道技术就是解决这个问题的。

    • 基于核心的发现技术

    这个要解决的问题是,你别老一个班一个班的,小家子气。让我们来实现整个校区。

    转载于:https://www.cnblogs.com/Coeus-P/p/9025684.html

    展开全文
  • Kobject 是Linux 2.6 引入的设备管理机制,在内核中由struct kobject数据结构 进行描述通过这个数据结构使所有设备在底层都具有统一接口,kobject提供基本对象 理,是构成Linux2.6设备模型核心结构,它...

    1 Kobject

    1.1 简介

    Kobject 是Linux 2.6 引入的新的设备管理机制,在内核中由struct kobject数据结构 进行描述通过这个数据结构使所有设备在底层都具有统一的接口,kobject提供基本的对象管 理,是构成Linux2.6设备模型的核心结构,它与sysfs文件系统紧密关联,每个在内核中注 册的kobject对象都对应于sysfs文件系统中的一个目录。Kobject是组成设备模型的基本结 构。但是,它比较低调,从不单独使用,都是嵌套在别的数据结构中。类似于C++中的基 类,它嵌入于更大的对象的对象中–所谓的容器–用来描述设备模型的组件。如bus, devices, drivers 都是典型的容器。这些容器就是通过kobject连接起来了,形成了 一个树状结构。这个树状结构就与/sys相对应。

    kobject 结构为一些大的数据结构和子系统提供了基本的对象管理,避免了类似机能的重 复实现。这些机能包括

    • 对象引用计数.
    • 维护对象集合.
    • 对象上锁.
    • 在用户空间的表示.

    1.2 定义

    Kobject结构定义为:

    struct kobject {
    const char *name; /* 指向设备名称的指针 */
    struct list_head entry; /* 挂接到所在kset中去的单元 */
    struct kobject *parent; /* 指向父对象(kobject)的指针 */
    struct kset *kset; /* 所属kset的指针 */
    struct kobj_type *ktype; /* 指向其对象类型描述符的指针 */
    struct sysfs_dirent *sd;
    struct kref kref; /* 对象引用计数 */
    unsigned int state_initialized:1;
    unsigned int state_in_sysfs:1;
    unsigned int state_add_uevent_sent:1;
    unsigned int state_remove_uevent_sent:1;
    unsigned int uevent_suppress:1;
    };

    其中,重要的变量已经加了注释,这里再简要介绍一下:

    • kref: 
      kref域表示该对象引用的计数,内核通过kref实现对象引用计数管理,内核提供两 个函数kobject_get()、kobject_put() 分别用于增加和减少引用计数,当引用计数为 0时,所有该对象使用的资源释放。
    • Ktype: 
      域是一个指向kobj type结构的指针,表示该对象的类型。
    • parent 
      指针指向kobject的父对象。因此,kobject就会在内核中构造一个对象层次结构, 并且可以将对各对象间的关系表现出来,就如你看到的,这便是sysfs的真正面目: 一个用户空间的文件系统,用来表示内核中kobject对象的层次结构。

    1.3 相关函数

    • void kobject_init(struct kobject * kobj) kobject初始化函数。
    • int kobject_set_name(struct kobject *kobj, const char *format, …) 设置指定kobject的名称。
    • struct kobject *kobject_get(struct kobject *kobj) 将kobj 对象的引用计数加1,同时返回该对象的指针。
    • void kobject_put(struct kobject * kobj) 将kobj对象的引用计数减1,如果引用计数降为0,则调用kobject release()释放该 kobject对象。
    • int kobject_add(struct kobject * kobj) 将kobj对象加入Linux设备层次。挂接该kobject对象到kset的list链中,增加父目录 各级kobject的引用计数,在其 parent指向的目录下创建文件节点,并启动该类型内 核对象的hotplug函数。
    • int kobject_register(struct kobject * kobj) kobject注册函数。通过调用kobject init()初始化kobj,再调用kobject_add()完 成该内核对象的注册。
    • void kobject_del(struct kobject * kobj) 从Linux设备层次(hierarchy)中删除kobj对象。
    • void kobject_unregister(struct kobject * kobj) kobject注销函数。与kobject register()相反,它首先调用kobject del从设备层次 中删除该对象,再调用kobject put()减少该对象的引用计数,如果引用计数降为0, 则释放kobject对象。

    2 Kobj type

    kobject对象被关联到一种特殊的类型,即ktype。ktype由kobj_type结构体表示,定义于 <linux/kobject.h>中:

    struct kobj_type {
    void (*release)(struct kobject *kobj);
    struct sysfs_ops *sysfs_ops;
    struct attribute **default_attrs;
    };
    • release指针 指向在kobject引用计数减至0时要被调用的析构函数。该函数负责释放 所有kobject使用的内存和其它相关清理工作。
    • ktype

    是为了描述一族kobject所具有的普遍特性。因此,不再需要每个kobject都分别定 义自己的特性,而是将这些普遍的特性在ktype结构体中一次定义,然后所有“同类”的 kobject都能共享一样的特性。

    • sysfs_ops

    指向sysfs操作表和一个sysfs文件系统缺省属性列表。Sysfs操作表包括两 个函数store()和show()。当用户态读取属性时,show()函数被调用,该函数编码指定属 性值存入buffer中返回给用户态;而store()函数用于存储用户态传入的属性值。

    • default_attrs

    指向一个attribute结构体数组。这些结构体定义了该kobject相关的默认 属性。属性给定了对象的特征,如果该kobject被导出到sysfs中,那么这些属性都将相应 的作为文件而导出。其定义如下:

    struct attribute {
    const char *name;
    struct module *owner;
    mode_t mode;
    };

    它以文件的形式输出到sysfs的目录当中。在kobject对应的目录下面。文件 名就是name。文件读写的方法对应于kobj_type中的sysfs_ops。

    3 kset

    3.1 简介

    kset 最重要的是建立上层(sub-system)和下层的(kobject)的关联性。kobject 也会利用 它了分辨自已是属于那一個类型,然後在/sys 下建立正确的目录位置。而kset 的优先权 比较高,kobject会利用自已的*kset 找到自已所属的kset,並把*ktype 指定成該kset下 的ktype,除非沒有定义kset,才会用ktype來建立关系。Kobject通过kset组织成层次化 的结构,kset是具有相同类型的kobject的集合,在内核中用kset数据结构表示。

    3.2 定义

    /**
    * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
    *
    * A kset defines a group of kobjects. They can be individually
    * different "types" but overall these kobjects all want to be grouped
    * together and operated on in the same manner. ksets are used to
    * define the attribute callbacks and other common events that happen to
    * a kobject.
    *
    * @list: the list of all kobjects for this kset
    * @list_lock: a lock for iterating over the kobjects
    * @kobj: the embedded kobject for this kset (recursion, isn't it fun...)
    * @uevent_ops: the set of uevent operations for this kset. These are
    * called whenever a kobject has something happen to it so that the kset
    * can add new environment variables, or filter out the uevents if so
    * desired.
    */
    struct kset { /**< 内核的某个子系统中的同一类型的内核对象的集合 */
    struct list_head list; /**< 链表头 */
    spinlock_t list_lock; /**< Spinlock */
    struct kobject kobj; /**< 这个KSet中嵌入的 kobject */
    struct kset_uevent_ops *uevent_ops; /**< 操作函数 */
    };
    • list: 包含在kset中的所有kobject被组织成一个双向循环链表的表头。
    • list_lock: 遍历这个kset中的所有kobject所需持有的锁。
    • kobject: 数据结构中内嵌的kobject对象(由kobj域表示),所有属于这个kset 的kobject对象的parent域均指向这个内嵌的对象。此外,kset的引用计数实际上就是内嵌的 kobject对象的引用计数。

    3.3 相关函数

    • kset_init(): 完成指定kset的初始化
    • kset_get()和kset_put(): 分别增加和减少kset对象的引用计数。
    • Kset_add()和kset_del(): 函数分别实现将指定keset对象加入设备层次和从其中删除
    • ksetregister() 和 ksetunregister(): 完成 kset的注册和注销
    在建立 linxu设备模型中 kobject是一个重要的而且基础的数据结构 ,如果向内核注册一个 kobject就相当于在 sysfs文件系统下建立一个目录 .kobject又被嵌入到一个更大结构 kset当中 ,在设备模型中 总线 ,设备 ,驱动就是典型的 ket模型 .
    下面引用 ULK3中的一张图来看看 :
    这个图很清晰的给我们展示了一个驱动注册到pci总线上后.sys下的目录结构. 从这里我们我们可以看出使用sysfs文件系统建立起来的设备模型是很有层次的.
    pci和drivers都是一个ket组成,serial由kobj构成, 在serial这个目录下面有一个属性文件new-id .
     
    注册kobject对象
    我们这里就从创建并注册kobject对象开始吧,
    636 struct kobject *kobject_create_and_add(const char *name, struct kobject *parent)
    637 {
    638         struct kobject *kobj;
    639         int retval;
    640
    641         kobj = kobject_create();
    642         if (!kobj)
    643                 return NULL;
    644
    645         retval = kobject_add(kobj, parent, "%s", name);
    646         if (retval) {
    647                 printk(KERN_WARNING "%s: kobject_add error: %d/n",
    648                        __func__, retval);
    649                 kobject_put(kobj);
    650                 kobj = NULL;
    651         }
    652         return kobj;
    653 }
    第641行, 在内存中分配一个kobject, 并调用kobject_init()初始化这个kobject. 第645行的函数就是要把这个kobject注册到内核中了.
    看看kobject_add()实现流程:
    kobject_add()->kobject_add_varg()->kobject_set_name_vargs()->kobject_add_internal()->create_dir()->sysfs_create_dir() ; 从这个流程可以看到注册一个kobject实际上就是在sysfs文件系统中创建一个目录.前面几个函数都是较简单的,这里主要看看kobject_add_internal()函数:
    158 static int kobject_add_internal(struct kobject *kobj)
    159 {
    160         int error = 0;
    161         struct kobject *parent;
    162
    163         if (!kobj)
    164                 return -ENOENT;
    165
    166         if (!kobj->name || !kobj->name[0]) {
    167                 pr_debug("kobject: (%p): attempted to be registered with empty "
    168                          "name!/n", kobj);
    169                 WARN_ON(1);
    170                 return -EINVAL;
    171         }
    172
    173         parent = kobject_get(kobj->parent);
    174
    175         /* join kset if set, use it as parent if we do not already have one */
    176         if (kobj->kset) {
    177                 if (!parent)
    178                         parent = kobject_get(&kobj->kset->kobj);
    179                 kobj_kset_join(kobj);
    180                 kobj->parent = parent;
    181         }
    182
    183         pr_debug("kobject: '%s' (%p): %s: parent: '%s', set: '%s'/n",
    184                  kobject_name(kobj), kobj, __func__,
    185                  parent ? kobject_name(parent) : "<NULL>",
    186                  kobj->kset ? kobject_name(&kobj->kset->kobj) : "<NULL>");
    187
    188         error = create_dir(kobj);
    189         if (error) {
    190                 kobj_kset_leave(kobj);
    191                 kobject_put(parent);
    192                 kobj->parent = NULL;
    193
    194                 /* be noisy on error issues */
    195                 if (error == -EEXIST)
    196                         printk(KERN_ERR "%s failed for %s with "
    197                                "-EEXIST, don't try to register things with "
    198                                "the same name in the same directory./n",
    199                                __func__, kobject_name(kobj));
    200                 else
    201                         printk(KERN_ERR "%s failed for %s (%d)/n",
    202                                __func__, kobject_name(kobj), error);
    203                 dump_stack();
    204         } else
    205                 kobj->state_in_sysfs = 1;
    206
    207         return error;
    208 }
    第166行代码是判断kobj的名字,我们的目录是要有名字的. 173行代码,增加kobj父亲的引用计数
    第176-180行代码, 如果kobj设置了kset, 在kobj未指定父对象的情况下,把ket->kobj设为这个kobj的父亲,并将kobj对象添加到kset的kobj list中.
    第188行代码create_dir()在以前已经分析过了,就是在sysfs下创建一个目录文件撒.
     
    注册kset对象
    在分析了kobj的注册以后再来分析ket的注册就比较简单了.
    Kset创建并注册流程:
    kset_create_and_add()-> kset_create()->kset_register()->kobject_add_internal()->kobject_uevent();
    其实ket的注册流程和kobj的注册流程基本上都是一样的,ket的注册实际上就把它嵌套的kobj注册到内核中了,同样也会在sysfs相应位置建立一个目录.
    但与注册kobj不同的是, 在注册一个kset时会调用函数kobject_uevent(&k->kobj, KOBJ_ADD) 通过netlink把KOBJ_ADD事件发送到用户层的udev ,在udev收到内核发的这个消息时就会执行相应的事件了.

    展开全文
  • 本 Chat 意在从高维空间特征角度引入深度学习,进入到深度学习理论内部,用通俗易懂方式将一个貌似很高深晦涩理论浅显化。你可以是一个文科外行,亦或是一个管理工作,或是想踏入 AI 领域,又或是想了解...

    本 Chat 意在从高维空间特征角度引入深度学习,进入到深度学习的理论内部,用通俗易懂的方式将一个貌似很高深晦涩的理论浅显化。你可以是一个文科外行,亦或是一个管理工作的高管,或是想踏入 AI 领域,又或是想了解机器学习\深度学习理论同行,我们换个角度一探究竟吧。(以此前自己的一个汇报 PPT 为材料,力求多的图像和解释性文字详述)

    主要内容:

    1. 什么是凸优化?
    2. 什么是非线性?
    3. 什么是高维空间?
    4. 高维特征空间和深度学习有什么关系?
    5. 卷积层数越多,特征提取能力真的越强吗?为啥?

    文章主要以此为线索,力求浅显易懂,不懂不要钱(哈哈),我们开始吧···

    阅读全文: http://gitbook.cn/gitchat/activity/5a70632c097b1b5861076130

    您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

    FtooAtPSkEJwnW-9xkCLqSTRpBKX

    展开全文
  • 那些引入更改人员在部署时处于警戒状态 3. 自动化 自动化构建 自动化部署 用户状态通知 自动化测试 4. 更多 更改记录 支持机型 贡献 随意 fork 这个存储库并扩展或添加您自己示例,并发送包含更改拉取请求...
  • 合规法理论是不完整的,并且处于概念上的脱节状态。... 第三部分介绍了合规的系统理论,并提出了支持为什么这个理论模型提供强大的解释和预测能力的论点。 第四部分提供了规范性的法律和政策分析。
  • 我们还表明,对于可以几何地解释为半径随时间变化伪超球面宇宙学模型,爱因斯坦场方程不足以完全描述该模型。 此外,还需要比安奇恒等式微分方程组来描述宇宙时间演化。 我们以de Sitter宇宙,腔下宇宙和...
  • 以自然语言编写产品规范含糊其辞,常常会带来设计缺陷,而这种缺陷直到较晚阶段才会被发现,...The MathWorks公司负责营销、信号处理和通信总监Ken Karnofsky说:“设计缺陷是在规范阶段引入的,一般要到验证阶
  • 引入方法/条件来控制高/员工对 EBI 货币化; 并引入无分配方法/模型来预测和预防 EBI 货币化; 这些模型可以包含对标的公司未来状态、(投资者和员工)行为模式和股票市场估计,以及这里介绍...
  • 以自然语言编写产品规范含糊其辞,常常会带来设计缺陷,而这种缺陷直到较晚阶段才会被发现,...The MathWorks公司负责营销、信号处理和通信总监Ken Karnofsky说:“设计缺陷是在规范阶段引入的,一般要到验证阶
  • fair-ML 社区一个关键目标是开发基于机器学习系统,一旦将其引入社会环境,就可以实现社会和法律成果,例如公平、正义和正当程序。 计算机科学中基本概念——例如抽象和模块化设计——用于定义公平和歧视...
  • 引入方法/条件来控制高/员工对 EBI 货币化; 并引入无分配方法/模型来预测和预防 EBI 货币化; 这些模型可以包含对标的公司未来状态、(投资者和员工)行为模式和股票市场估计,以及这里介绍...
  • 融合架构

    2014-01-06 09:19:34
    融合架构不同人,不同公司,不同业务对这个解释或许会存在差异化的解释,但是其核心还是完成企业的信息业务流程,从基础架构到信息传递再到管控流程,以及最后的业务管控和决策分析,信息收集。 现在很多的融合架构...


    融合架构不同人,不同公司,不同业务对这个解释或许会存在差异化的解释,但是其核心还是完成企业的信息业务流程,从基础架构到信息传递再到管控流程,以及最后的业务管控和决策分析,信息收集。

    现在很多的融合架构都是从信息中心的角度出发,从信息中心的需求,发展引入概念,在企业信息化现有的基础上完成融合架构。但是融合架构不是一个简单的系统或者一项业务,他需要的是一个整体的方案,并且能够由整体的基础来完成。

    融合架构的发展更趋向于企业的数据分析,同样需要企业有一定的实力,一定的积累,明确自身的需求才能够进行的,需要在原有的基础上完成进一步的整合完善来支撑企业的整体发展。而刚刚接触融合架构更像重新建立一套企业信息化方案,当深入了解后才明白其本质区别。企业信息化是一种的企业管理方式,而融合架构是企业信息化的一种发展趋势,使用融合架构的方法来实现企业信息化。

    举个简单例子,企业中纯硬件的应用可能硬件性能饱和度只维持在30%-50%,可是这样的硬件企业存在多个,那么这样必然造成资源浪费,相对应资源耗费的情况,如果合并这些硬件使用虚拟化进行加以利用,使3个硬件减少到两个,而每个的性能饱和度维持在60%-80%这样是不会影响企业的业务应用的,而且节省资源。这就是融合架构中硬件融合的一部,而且融合架构更多的是相同品牌的资源整合,而这个只是其中一小部分,算不上融合架构,一个简单的例子只是从一个方面来透视融合架构的优势,或者说是企业为何要发展融合架构。

    现今大型信息化解决方案提供商都有自己的融合架构解决方案,例如:IBM 的PureSystem;戴尔的灵动家族;惠普的的CloudSystem。都是整体的融合架构解决方案,资料甚多在此就不深入剖析,有兴趣的可以网上查阅相关资料,如果以后再这方面有新的发展会另开课题深入探讨。

    无论是数据中心发展,还是企业信息化一体化发展,统一管理,节省资源都是一个必然的趋势,绿色IT已经在路上,企业发展多元化CIO更多的应当考虑在信息化发展成熟的情况下如何去做信息沉淀,如何完成优化和整合,这样融合架构的必然性自然能够体现,就如企业当初上业务系统时候可以分布完成,并非一蹴而就,能力有多少就上多少,实力有多大就出多大,企业的步伐需要信息化支撑,现在信息化概念如此多,发展也是日新月异,当CIO不做好准备当企业发展需要数据、信息来支撑的时候短板效应将会被无穷放大。

     

     

    微信支持平台QQ群:193518109

    微信号:yeyuhuan01

    微信名称:xinxihua

    展开全文
  • 分布式系统架构设计

    2021-02-24 05:09:37
    跟SOA相提并论还有ESB(企业服务总线),简单来说ESB就是管道,链接各个服务节点,为了集成不同系统和不同协议,ESB做消息转化解释和路由工作。让不同服务连通。1.系统集成,站在系统角度,解决企业系统间...
  • 为此,在一个干涉仪臂中,以透明管的形式用蒸馏水引入了不均匀性。 当将管子的方向从SN更改为WE时,干涉仪的速度差相对于介质已记录下来:通过在屏幕上移动干涉条纹。 在两个地方进行了测量:东经30.2 / 6北纬2海拔...
  • 由于OpenCL标准本身阅读起来比较晦涩,很多概念也没有完全解释清楚,因此我们写这本书目的是以更简洁、通俗语句来表达OpenCL中各种概念,以及各种API、各种语法使用,使读者更易理解。同时加入了很多代码...
  • Python 解释器有一个全局解释器锁(PIL),导致每个 python 进程中最多同时运行一个线程,因此 Python 多线程程序并不能改善程序性能,不能...这里介绍 multiprocessing 模块下进程,进程同步,进程间通信和进程
  • 第三方支付备付金

    千次阅读 2018-08-06 17:50:17
    场景:当我们在电商平台购买商品时,... 这里引入了两个概念:备付金和备付金账户。 备付金 按照《支付机构客户备付金存办法》的解释,客户备付金是指支付机构为办理客户委托的支付业务而实际收到的预收待付...
  • 为什么我一上来就引入坐标轴图像,因为坐标轴图像是一种直观地研究问题方式,它比公式更友好。 所以我认为模电学习应该是以坐标轴图像为核心,你可以看到两条曲线,分别代表不同种类二极管。 现在解释...
  • 杂谈

    2010-01-15 12:25:00
    而且于约瑟夫环还留下个小bug也没人骂骂我,真是郁闷。今天想来想去还是简单写点小问题吧。前天,在表达式解释设计中。我给一个小女生指出“浮点数字段缺省值应该是零”。同时我跟她说,空字符串不应该...
  • 进程与线程

    2020-08-07 11:18:58
    一、进程 1.概念:一个程序在一个数据集合上一次运行过程。 2.特点:内存空间独立;上下文环境独立。 3.进程间通信:管道,系统Inter process communication,信号...三、进程与线程形象化解释 把CPU比作工厂,那么
  • Spring之AOP一

    2017-12-23 21:46:00
    今天主要是引入AOP,具体它涉及到专有名词先不做解释。 一、横切纵切 首先要知道什么是横切什么是纵切(吐槽大会观众们这也是知识点),下面两张图是从网上找,是讨论刨妇产是横切好还是纵切好问题,知道...
  • vc编译时Debug版本下没问题,release版本下出现一个或...解释:你没有引入xxx.dll中任何东西,链接器做优化不再链接他,这有助于减小可知性文件体积。 解决方法:其实不用这种警告,如下方法可以去除警告:在
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    C#--微软.NET第一语言 本书着重介绍语言本身,比较少涉及应用,不错入门书,从头讲起,不怕不明白。 <<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 ...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

引入管的解释