- _cdecl 与 _stdcal 区别 以及 extern “c‘ 作用
not so perfect
c++开发语言
文章目录目的_stdcal_cdecl结果dllextern"c"补充目的1)了解windows下_cdecl与_stdcal区别,方便更好运用修饰函数进行函数调用时,有几种调用方法,分为C式,Pascal式。总的区别来说。_cdecl(c/c++缺省的,支持变参函数,但其他非c/c++语言不支持)_stdcall(依词义,标准调用,不支持变参)2)dllextern"c‘作用_stdcalWIN
- C# 调用C++ dl注意事项
xaq693888265
C#调用C++相关代码
最近经常在C#代码调用C++的dll文件,对于遇到的坑总结一下1、针对C++的dll文件常见的几种约定方式__stdcal:参数从右向左的顺序进行入栈,堆栈由被调用方进行释放,即C++的dll的函数进行堆栈自行管理__cdecl:参数从右向左的顺序进行入栈,堆栈由调用方维护,即谁调用,是负责堆栈释放C++的默认调用约定为__cdecl,我们在编写C#时,需要注意调用函数约定方式。2、再C#代码中,
- cdecl、stdcall、fastcall、declspec 的用法和区别(转)
zxqatqd
C/C++
首先这三个修饰符是c和c++调用约定调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定:__cdecl,__stdcal和__fastcalll都是函数调用规范,规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只
- __stdcall 和 __cdecl 的区别浅
星能量
杂谈
__stdcall和__cdecl的区别浅析,需要的朋友可以参考一下1.__cdecl__cdecl是CDeclaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,由调用者负责把参数压入栈,最后也是由调用者负责清除栈的内容,一般来说,这是C/C++的默认调用函数的规则,MSVC编译器采用的规则则是这种规则2.__stdcall_stdcal
- (转)函数调用约定--- __cdecl和__stdcal
llw01
c++
调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。上面这段话摘自[BlueTopic]的BLOG采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。采用__stdcal约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。
- __stdcal、_cdecl和__fastcall
dahan_wangtao
VC/MFC
最近学习过程中碰到有关函数调用方法,如:__stdcal,_cdecl和__fastcall。查阅了一些相关的资料和别人的经验,我总结如下:__stdcal,_cdecl,__fastcall有三个方面来区分:1:函数参数是按什么顺序压入栈中的。2:调用完毕后是由谁来释放栈中的空间的。(这个问题主要是因为函数传递过程中是存放在栈中的,可以选择调用者释放空间,也可以选择被调用者释放。)3:产生函数名
- 纸牌控件的编写(中)
xzhifei
VCL
functioncdtInit(varCardWidth,CardHeight:TCoordinate):Bool;{$ifdefWin32}stdcall;{$ENDIFWin32}functioncdtDraw(aDC:HDC;X,Y:TCoordinate;Card:TCardId;Mode:Cardinal;Color:TColorRef):Bool;{$IFDEFWin32}stdcal
- VC中使用内联汇编(转载)
weixin_33882443
1.使用C中的局部变量和全局变量。?[Copytoclipboard]ViewCodeCPP12345678910inta=5,b=6,c;__asm{xoredx,edx;edx=0addedx,a;edx+=aaddedx,b;edx+=baddedx,g_nC;使用全局变量movc,edx;c=edx}printf("UseParameter:%d\n",c);2.调用C中函数,stdcal
- cdecl、stdcall、fastcall、declspec 的用法和区别
胖次在哪里
C/C++
首先这三个修饰符是c和c++调用约定调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定:__cdecl,__stdcal和__fastcalll都是函数调用规范,规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只
- 汇编语言-求分段函数值
banchui6883
计算函数值题目:计算给定函数值要求:编制程序,计算下面函数值其中,从键盘输入x,y,输出数据为a。输入输出时候都要求有提示信息。考查知识点:分支结构的应用。代码如下:1;Exampleassemblylanguageprogram--2;Author:karllen3;Date:revised5/201445.3866.MODELFLAT78ExitProcessPROTONEAR32stdcal
- C语言学习心得一:__stdcall…
Kayneo
原文地址:C语言学习心得一:__stdcall、__cdcel和__fastcall三者的区别作者:赵加奎__stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。如下图所示,可以在IDE环境中设定所有函数默认的调用协议,还可以在函数定义时单独设定本函数的调用协议。调用协议常用场合__stdcal
- _cdecl _stdcal _thiscall 等调用约定的汇编代码区别
u010536615
技术Cocos2dxc++
原文地址:http://blog.sina.com.cn/s/blog_bad31d930102wuk4.html(这里备注下:可能上面还有一个原文链接,是csdn转载的文章类型自动加上去的,我在csdn没加这个功能之前,也会先把转载的原文地址列在最前面,这里忽略csdn的更改,保持习惯吧。)以下是文章内容:研究下_cdecl_stdcal_thiscall等调用约定,以及成员函数与普通函数调用上
- 在WPF(C#)工程中使用C导出动态库DLL
weixin_40720438
WPF
运行环境:VisualStudio2017一.创建动态库1.建立tteHwif.dll项目项目创建完成2.tteHwif.cpp//DLLshow.cpp:定义DLL应用程序的导出函数。//#include"stdafx.h"#include"stdio.h"#include"stdlib.h"#include"time.h"#include"tteHwif.h"//启动自检bool_stdcal
- hook鼠标
书搞进脑袋-创新-创造
librarydllMouse;usesSysUtils,Classes,UnitHookDLLin'UnitHookDLL.pas',UnitHookConstin'UnitHookConst.pas';{$R*.res}{functionStartHook(sender:HWND;MessageID:WORD):BOOL;stdcall;functionStopHook:BOOL;stdcal
- 函数调用方式关键字解析
Yuzhiyuxia
调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。 采用__cdecl约定时:函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。 采用__stdcal约定时:函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被
- 多线程编程(6) - 从 CreateThread 说起[续四]
涂孟超
functionCreateThread(
lpThreadAttributes:Pointer;
dwStackSize:DWORD;{堆栈大小}
lpStartAddress:TFNThreadStartRoutine;
lpParameter:Pointer;
dwCreationFlags:DWORD;
varlpThreadId:DWORD
):THandle;stdcal
- 多线程编程(7) - 从 CreateThread 说起[续五]
涂孟超
functionCreateThread(
lpThreadAttributes:Pointer;{安全设置}
dwStackSize:DWORD;
lpStartAddress:TFNThreadStartRoutine;
lpParameter:Pointer;
dwCreationFlags:DWORD;
varlpThreadId:DWORD
):THandle;stdcal
- masm下几种常见函数调用方式
mydo
masmstdcallsyscall函数调用方式ccall
masm没有fastcall调用方式,其特点为:1第一个参数放入ecx,第二个参数放入edx;2如果有剩余参数则从右向左压栈;3被调用函数清理栈(平衡栈);4若有返回值放入eax;5name函数实际生成得函数名为@name@4*参数个数比如有带有2个参数的foo函数则实际名称为:@foo@8 syscall调用方式:1不对函数名做任何修饰;2从右向左压栈;3被调用函数清理栈; stdcal
- 理解_stdcal 与_cdecl
pizi0475
关于_stdcall和_cdecl的异同: 相同点: 1、_stdcall和_cdecl调用方式,都由主调函数负责参数压栈,都采用从右向左的实参压栈方式, 不同点: 1、_cdecl是C和C++程序的缺省调用方式; _stdcall是Pascal程序的缺省调用方式,通常用于Win32API中。 2、_cdecl调用方
- _cdecl和_stdcal的区别
lilang66
LRESULT就是LONG
CALLBACK专用在回调函数里,看看VC/BCB里的定义
VC:WINDEF.h
#defineCALLBACKPASCAL//_pascal
#defineWINAPICDECL//_cdecl
BCB:windef.h
#defineCALLBACK__stdcall
#defineWINAPI__stdcall
__cdecl是C/C
- 面向对象语言中的callback(C++)
shenlan282
C++cwindowsmfc语言callback
面向对象语言中的callback(C++) 回调函数必须是标准调用__stdcall,用户调用也以以,不过意义不大。回调一定是__stdcal但是__stdcal不一定是回调 许多程序员都发现,利用MFC或者其它的C++应用编写回调函数是非常麻烦的,其根本原因是回调函数是基于C编程的WindowsSDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的
- C++ 调用C#函数 并指定函数的调用约定
hjh2005
要向C++动态库算法函数传一个C#的函数来显示算法执行的进度,但是C++中定义的回调函数__cdecl调用方式的,而C#默认是__stdcal调用约定的,举例如下: [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)] publicdelegateboolProgressFuncHandler(refint
- cdecl、stdcall、fastcall、declspec 的用法和区别
bigconvience
dll语言DelphipascalBorlandwinapi
首先这三个修饰符是c和c++调用约定 调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定: __cdecl,__stdcal和__fastcalll都是函数调用规范,规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信
- python调用dll
xiesiyuana
pythonStringbufferdllPathimport
python中如果要调用dll,需要用到ctypes模块,在程序开头导入模块importctypes由于调用约定的不同,python调用dll的方法也不同,主要有两种调用规则,即cdecl和stdcal,还有其他的一些调用约定,关于他们的不同,可以查阅其他资料先说stdcal的调用方法:方法一:import ctypesdll = ctypes.windll.LoadLibrary( 'test.
- python调用dll
xie376450483
pythonStringbufferdllPathimport
python中如果要调用dll,需要用到ctypes模块,在程序开头导入模块importctypes由于调用约定的不同,python调用dll的方法也不同,主要有两种调用规则,即cdecl和stdcal,还有其他的一些调用约定,关于他们的不同,可以查阅其他资料先说stdcal的调用方法:方法一:import ctypesdll = ctypes.windll.LoadLibrary( 'test.
- cdecl、stdcall、fastcall、declspec 的用法和区别
xhhjin
dll语言DelphipascalBorlandwinapi
首先这三个修饰符是c和c++调用约定调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定: __cdecl,__stdcal和__fastcalll都是函数调用规范,规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的
- zz 函数调用约定( __cdecl + __stdcal + __fastcall )
dos5gw
调用约定 (Callingconvention) 决定以下内容: 函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。 采用 __cdecl 约定时调用约定 (Callingconvention) 决定以下内容: 函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。 采用 __cdecl 约定时: 函数参数按照从右到左的顺序入
- 多线程编程(7) - 从 CreateThread 说起[续五]
shazhuyubaichi
functionCreateThread(
lpThreadAttributes:Pointer;{安全设置}
dwStackSize:DWORD;
lpStartAddress:TFNThreadStartRoutine;
lpParameter:Pointer;
dwCreationFlags:DWORD;
varlpThreadId:DWORD
):THandle;stdcal
- 多线程编程(6) - 从 CreateThread 说起[续四]
shazhuyubaichi
多线程编程IntegerbuttonDelphicompiler
functionCreateThread(
lpThreadAttributes:Pointer;
dwStackSize:DWORD;{堆栈大小}
lpStartAddress:TFNThreadStartRoutine;
lpParameter:Pointer;
dwCreationFlags:DWORD;
varlpThreadId:DWORD
):THandle;stdcal
- 多线程编程(3) - 从 CreateThread 说起[续]
shazhuyubaichi
functionCreateThread(
lpThreadAttributes:Pointer;
dwStackSize:DWORD;
lpStartAddress:TFNThreadStartRoutine;
lpParameter:Pointer;
dwCreationFlags:DWORD;{启动选项}
varlpThreadId:DWORD
):THandle;stdcal
- jdk tomcat 环境变量配置
Array_06
javajdktomcat
Win7 下如何配置java环境变量
1。准备jdk包,win7系统,tomcat安装包(均上网下载即可)
2。进行对jdk的安装,尽量为默认路径(但要记住啊!!以防以后配置用。。。)
3。分别配置高级环境变量。
电脑-->右击属性-->高级环境变量-->环境变量。
分别配置 :
path
&nbs
- Spring调SDK包报java.lang.NoSuchFieldError错误
bijian1013
javaspring
在工作中调另一个系统的SDK包,出现如下java.lang.NoSuchFieldError错误。
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.l
- LeetCode[位运算] - #136 数组中的单一数
Cwind
java题解位运算LeetCodeAlgorithm
原题链接:#136 Single Number
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进
- qq登陆界面开发
15700786134
qq
今天我们来开发一个qq登陆界面,首先写一个界面程序,一个界面首先是一个Frame对象,即是一个窗体。然后在这个窗体上放置其他组件。代码如下:
public class First { public void initul(){ jf=ne
- Linux的程序包管理器RPM
被触发
linux
在早期我们使用源代码的方式来安装软件时,都需要先把源程序代码编译成可执行的二进制安装程序,然后进行安装。这就意味着每次安装软件都需要经过预处理-->编译-->汇编-->链接-->生成安装文件--> 安装,这个复杂而艰辛的过程。为简化安装步骤,便于广大用户的安装部署程序,程序提供商就在特定的系统上面编译好相关程序的安装文件并进行打包,提供给大家下载,我们只需要根据自己的
- socket通信遇到EOFException
肆无忌惮_
EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:
- 基于spring的web项目定时操作
知了ing
javaWeb
废话不多说,直接上代码,很简单 配置一下项目启动就行
1,web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="h
- 树形结构的数据库表Schema设计
矮蛋蛋
schema
原文地址:
http://blog.csdn.net/MONKEY_D_MENG/article/details/6647488
程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,
- maven将jar包和源码一起打包到本地仓库
alleni123
maven
http://stackoverflow.com/questions/4031987/how-to-upload-sources-to-local-maven-repository
<project>
...
<build>
<plugins>
<plugin>
<groupI
- java IO操作 与 File 获取文件或文件夹的大小,可读,等属性!!!
百合不是茶
类 File
File是指文件和目录路径名的抽象表示形式。
1,何为文件:
标准文件(txt doc mp3...)
目录文件(文件夹)
虚拟内存文件
2,File类中有可以创建文件的 createNewFile()方法,在创建新文件的时候需要try{} catch(){}因为可能会抛出异常;也有可以判断文件是否是一个标准文件的方法isFile();这些防抖都
- Spring注入有继承关系的类(2)
bijian1013
javaspring
被注入类的父类有相应的属性,Spring可以直接注入相应的属性,如下所例:1.AClass类
package com.bijian.spring.test4;
public class AClass {
private String a;
private String b;
public String getA() {
retu
- 30岁转型期你能否成为成功人士
bijian1013
成长励志
很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人
- 【Velocity四】Velocity与Java互操作
bit1129
velocity
Velocity出现的目的用于简化基于MVC的web应用开发,用于替代JSP标签技术,那么Velocity如何访问Java代码.本篇继续以Velocity三http://bit1129.iteye.com/blog/2106142中的例子为基础,
POJO
package com.tom.servlets;
public
- 【Hive十一】Hive数据倾斜优化
bit1129
hive
什么是Hive数据倾斜问题
操作:join,group by,count distinct
现象:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成;查看未完成的子任务,可以看到本地读写数据量积累非常大,通常超过10GB可以认定为发生数据倾斜。
原因:key分布不均匀
倾斜度衡量:平均记录数超过50w且
- 在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua csrf
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
- java-3.求子数组的最大和
bylijinnan
java
package beautyOfCoding;
public class MaxSubArraySum {
/**
* 3.求子数组的最大和
题目描述:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
例如输入的数组为1, -2, 3, 10, -4,
- Netty源码学习-FileRegion
bylijinnan
javanetty
今天看org.jboss.netty.example.http.file.HttpStaticFileServerHandler.java
可以直接往channel里面写入一个FileRegion对象,而不需要相应的encoder:
//pipeline(没有诸如“FileRegionEncoder”的handler):
public ChannelPipeline ge
- 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
cngolon
跨浏览器复制到粘贴板Zero Clipboard
Zero Clipboard的实现原理
Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flash的复制功能把传入的内容复制到剪贴板。
Zero Clipboard的安装方法
首先需要下载 Zero Clipboard的压缩包,解压后把文件夹中两个文件:ZeroClipboard.js
- 单例模式
cuishikuan
单例模式
第一种(懒汉,线程不安全):
public class Singleton { 2 private static Singleton instance; 3 pri
- spring+websocket的使用
dalan_123
一、spring配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or
- 细节问题:ZEROFILL的用法范围。
dcj3sjt126com
mysql
1、zerofill把月份中的一位数字比如1,2,3等加前导0
mysql> CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL, -> day
- Android开发10——Activity的跳转与传值
dcj3sjt126com
Android开发
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。
一、Activity跳转
方法一Intent intent = new Intent(A.this, B.class); startActivity(intent)
方法二Intent intent = new Intent();intent.setCla
- jdbc 得到表结构、主键
eksliang
jdbc 得到表结构、主键
转自博客:http://blog.csdn.net/ocean1010/article/details/7266042
假设有个con DatabaseMetaData dbmd = con.getMetaData(); rs = dbmd.getColumns(con.getCatalog(), schema, tableName, null); rs.getSt
- Android 应用程序开关GPS
gqdy365
android
要在应用程序中操作GPS开关需要权限:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办?
1、方法一:将项目放到Android源码中编译;
2、方法二:网上有人说cl
- Windows上调试MapReduce
zhiquanliu
mapreduce
1.下载hadoop2x-eclipse-plugin https://github.com/winghc/hadoop2x-eclipse-plugin.git 把 hadoop2.6.0-eclipse-plugin.jar 放到eclipse plugin 目录中。 2.下载 hadoop2.6_x64_.zip http://dl.iteye.com/topics/download/d2b
- 如何看待一些知名博客推广软文的行为?
justjavac
博客
本文来自我在知乎上的一个回答:http://www.zhihu.com/question/23431810/answer/24588621
互联网上的两种典型心态:
当初求种像条狗,如今撸完嫌人丑
当初搜贴像条犬,如今读完嫌人软
你为啥感觉不舒服呢?
难道非得要作者把自己的劳动成果免费给你用,你才舒服?
就如同 Google 关闭了 Gooled Reader,那是
- sql优化总结
macroli
sql
为了是自己对sql优化有更好的原则性,在这里做一下总结,个人原则如有不对请多多指教。谢谢!
要知道一个简单的sql语句执行效率,就要有查看方式,一遍更好的进行优化。
一、简单的统计语句执行时间
declare @d datetime ---定义一个datetime的变量set @d=getdate() ---获取查询语句开始前的时间select user_id
- Linux Oracle中常遇到的一些问题及命令总结
超声波
oraclelinux
1.linux更改主机名
(1)#hostname oracledb 临时修改主机名
(2) vi /etc/sysconfig/network 修改hostname
(3) vi /etc/hosts 修改IP对应的主机名
2.linux重启oracle实例及监听的各种方法
(注意操作的顺序应该是先监听,后数据库实例)
&nbs
- hive函数大全及使用示例
superlxw1234
hadoophive函数
具体说明及示例参 见附件文档。
文档目录:
目录
一、关系运算: 4
1. 等值比较: = 4
2. 不等值比较: <> 4
3. 小于比较: < 4
4. 小于等于比较: <= 4
5. 大于比较: > 5
6. 大于等于比较: >= 5
7. 空值判断: IS NULL 5
- Spring 4.2新特性-使用@Order调整配置类加载顺序
wiselyman
spring 4
4.1 @Order
Spring 4.2 利用@Order控制配置类的加载顺序
4.2 演示
两个演示bean
package com.wisely.spring4_2.order;
public class Demo1Service {
}
package com.wisely.spring4_2.order;
public class