微软开放了.NET 4.5.1的源代码

.NET Reference Source 发布了 beta 版,可以在线浏览 .NET Framework 4.5.1 的源代码,并且可以通过配置,在 Visual Studio 2013 中调试 .NET Framework

  .NET Framework 团队的项目经理 Alok Shriram 在.NET Framework 的博客中撰文介绍了最新的 .NET Reference Source。它不仅可以用来浏览最新的 .NET 代码,而且通过强大的 Roslyn,改善了“Go to Defination”和“Finding Reference”的在线体验。此外,开发者还可以下载整个源代码包,在 Visual Studio 中打开并浏览。使用 Schabse Laks 编写的插件,可以在 VS 中直接导航到该网站。

  通过简单的配置,开发者可以在 Visual Studio 中单步调试 .NET Framework 4.5.1 及其后续补丁和更新。这无疑是广大开发者翘首以盼的功能。启动 Visual Studio 2013,打开 Tools -> Options -> Debugging -> General 菜单,进行如下配置:

  • 禁用 Just My Code
  • 禁用 Step over properties and operators
  • 禁用 Require source files to exactly match the original version
  • 选中 Enable .NET Framework source stepping
  • 选中 Enable source server support

  这样,开发者在调试代码时,就可以通过 F11 直接进入 .NET 代码。

  这并不是微软第一次开放 .NET Framework 的源代码。早在 2007 年,他们就第一次公布了 .NET 3.5 的源代码并支持 Visual Studio 调试。并且对于后续的 4.0 和 4.5,也都提供了相应的源代码包。但当框架升级时,这些旧的包就变得毫无价值了。从 4.5.1 开始,.NET Framework 团队彻底改变了符号索引和发布的过程,使其与构建过程同步,这样在新版本发布时,相应的 PDB 文件也会从 Reference Source 网站进行更新。

  目前的 beta 站点只是临时的,届时将会取代现在的旧站点。后续微软也会将还未公布源代码的程序集逐步添加进来。

  新的 .NET Reference Source 许可协议回归到了 MS-RSL,这也使得像 Mono 这样的团队可以放心大胆地使用。

  正如 Scott Hanselman所说:微软可能并不是开源的,但却绝对是源代码开放的。

TFS2013升级Update 2错误 - TFS255440

TF255440: The following account has a SQL Server login, but the login was denied access: lsw\lishewen. The server selected to host the databases for Team Foundation Server is: lswserver. The SQL Server login associated with the user account must be granted access to the SQL Server instance on that server.

解决方法:

首先将你的账号加入sqlserver管理员组(如果是,则不用加)

如security\logins下添加账号   赋予systemadmin,serveradmin权限

ECShop实现立刻购买与添加到购物车并存的方法

在后台开启“一步购物则”可以不用到购物车“直接结算” 。从而实现立刻购买。然而购物车的功能又没有了。有没有像淘宝那样即可以立刻购买。又有购物车功能呢?

    1、首先我们先将“添加购物车”的跳转链接复制替换“收藏商品”的按钮上然后设一个bool值为1 。

<a href="javascript:bool =1;addToCart({$goods.goods_id})">。

    2、然后打开JS处理文件“common.js” ,在这个脚本的第一行代码之上加一个全局变量var bool =0; 查找点击购物车之后的那条链接即:flow.php?step=cart  ,找到这个(在第88行
那块)之后,在下面加这句话(bool == 1) && (cart_url = 'flow.php?step=consignee');

    意思是 当bool = 1 条件满足时 则cart_url链接到  'flow.php?step=consignee' 直接购买的页面

    这样就实现了“立刻购买”与“添加到购物车”并存的方法

如何在Windows Store应用闪退的时候自动生成dump

    当开发者在测试或者用户使用Windows store 应用的时候,我们可能希望Windows store程序能够在发生异常的时候自动生成dump文件以便于以后分析。在写桌面应用的时候,我们可以通过调用API MiniDumpWriteDump来实现。但是这个API在Windows store应用中是不被支持的。那么有没有其他办法来生成dump了呢? 其实以前的Windows Error Reporting机制针对Windows store应用还是有效的,所以你可以通过改写注册表的办法让应用程序自动生成dump,具体步骤如下:

1) 运行REGEDIT.EXE 找到 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps”. 如果该键不存在的话则新建LocalDumps 键,。

2) 创建一个与你的Windows store应用进程同名的子键,比如说MyApp.exe。

3) 在子键中创建一个名为DumpFolder,类型为REG_EXPAND_SZ的值,设置它的值为你需要生成dump的目录(保证要存在),比如说C:\Dumps。

4) 在同一个子键中创建一个名为DumpCount,类型为REG_DWORD的值,设置他的值为5 (生成dump的最大数目)。

5) 在同一个子键中创建一个名为DumpType,类型为REG_DWORD的值,设置他的值为2 (full dump)。

其结果如图所示:

这样在你的Windows store应用闪退的时候就可以自动得到full dump了。你可以将上述注册表键值放在一个注册表文件中,当用户有闪退的情况是,让用户倒入该注册表文件,然后将生成的dump文件上传。

MQL4关键函数

如何抓取价格数据
1 如何获得本货币对的买价、卖价
double ask = Ask; // Ask是关键字,表示本货币对买价;
double bid = Bid; // Bid是关键字,表示本货币对卖价;

2 如何获得任意货币对的买价、卖价
double MarketInfo(string symbol, int type);
MarketInfo("EURUSD", MODE_ASK); // 获得欧元的买价
MarketInfo("EURUSD", MODE_BID); // 获得欧元的卖价

3 如何获得本货币对,本时间周期,任意K线的开盘价、收盘价、最高价、最低价
double Open[]; // 开盘价
double Close[]; // 收盘价
double High[]; // 最高价
double Low[]; // 最低价
// 序号从最后一根K线开始按照0、1、2编号。

4 如何获取任意货币对,任意时间周期,任意K线的开盘价、收盘价、最高价、最低价
double iOpen(string symbol, int timeframe, int shift)
double iClose(string symbol, int timeframe, int shift)
double iHigh(string symbol, int timeframe, int shift)
double iLow(string symbol, int timeframe, int shift)
// symbol,货币对名称;
// timeframe,时间周期;
// shift,K线序号;

如何调用指标数据
1 调用MT4自带指标
直接调用函数字典“Technical indicators”里面系统自带的指标函数即可。
比如均线:double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) 计算移动平均指标并返回它的值。
参数:
symbol   -   计算指标数据上的货币对名称。NULL表示当前货币对。
timeframe   -   时间周期。可以时间周期列举任意值。0表示当前图表的时间周期。
period   -   平均周期计算。
ma_shift   -   MA转移。指标线垂直与图表的时间周期。
ma_method   -   MA方法。它可以是其中任意 滑动平均值列举值。
applied_price   -   应用的价格。它可以是应用价格列举的任意值。
shift   -   K线索引序列(最后一根为0)。

KD指标:iStochastic;
布林指标:iBands;
MACD指标:iMacd;

2 调用自定义指标或者第三方指标
保证自定义指标*.ex4已经放入安装目录experts\indicators目录。
double iCustom(string symbol, int timeframe, string name, ..., int mode, int shift) 计算指定的客户指标并且退回它的值。
参数:
symbol   -   计算指标数据上的货币对名称。NULL表示当前货币对。
timeframe   -   时间周期。 可以时间周期列举任意值. 0表示当前图表的时间周期。
name   -   客户指标完成程序名称。
...   -   参量设置(如果需要)。通过的参量和他们的顺序必须与desclaration命令和客户指标的外部可变物的种类对应。
mode   -   索引行。 从0到7并且必须对应以其中一个使用的索引的 SetIndexBuffer 函数。打开数据窗口可以看到画线的列表,从0开始。
shift   -   K线索引序列(最后一根为0)。

如何调用下单、操作订单函数
1
如何下市价单及挂单
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void

expiration, void arrow_color)
参数:
symbol   -   交易货币对。
cmd   -   下单类型。
volume   -   下单手数。
price   -   开仓价格。
slippage   -   最大允许滑点数。
stoploss   -   止损价格。
takeprofit   -   止盈价格。
comment   -   订单注释。
magic   -   订单指定码。可以作为用户指定识别码使用。
expiration   -   订单有效时间(只限挂单)(不指定时间输入0)。
arrow_color   -   图表上箭头颜色。

下单类型:
OP_BUY 0 买仓
OP_SELL 1 卖仓
OP_BUYLIMIT 2 买挂单交易 (低价买入,常规的。)
OP_SELLLIMIT 3 卖挂单交易 (高价卖出,常规的。)
OP_BUYSTOP 4 买停挂单交易(高价买入)
OP_SELLSTOP 5 卖停挂单交易 (低价卖出)

示例:
// 市价买入
int ticket;
ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, 0, "my_buy", 1001, 0, Red);
if(ticket < 0) {
    Print("OrderSend 失败错误 #", GetLastError());
    return(0);
}
// 市价卖出
int ticket;
ticket = OrderSend(Symbol(), OP_SELL, 1, Bid, 3, 0, 0, "my_sell", 1001, 0, Green);
if(ticket < 0) {
    Print("OrderSend 失败错误 #", GetLastError());
    return(0);

2 如何调用订单函数
bool OrderSelect(int index, int select, void pool) 函数选择定单。如果函数成功,返回的值为TRUE。如果函数失败,返回的值为FALSE。
参数:
index   -   定单索引(订单序列或订单编号)。
select   -   选定模式。可以为以下的任意值: SELECT_BY_POS(按照序列)、SELECT_BY_TICKET(按照订单编号)。
pool   -   可选择定单索引。当选择SELECT_BY_POS参量时使用。可以为以下的任意值: MODE_TRADES (default)- 来自交易的定单(开单和挂单),MODE_HISTORY - 来自历史的定

单(平仓和取消定单)。

3 如何修改市价单和挂单的止损、止盈,以及如何修改挂单的价格
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow_color) 对于先前的开仓或挂单进行特性修改。如果

函数成功,返回的值为 TRUE。如果函数失败,返回的值为FALSE。
参数:
ticket   -   定单编号。
price   -   新的挂单价格,不想修改就输入原先的价格。
stoploss   -   新止损价格,不想修改就输入原先的价格。
takeprofit   -   新盈利价格,不想修改就输入原先的价格。
expiration   -   新挂单有效时间。
arrow_color   -   图表中标价挂单箭头的颜色。

4 如何市价平仓
bool OrderClose( int ticket, double lots, double price, int slippage, void Color) 对定单进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回的值

是假的。
参数:
ticket   -   订单编号。
lots   -   平仓的手数。
price   -   平仓的价格。
slippage   -   最大允许滑点数。
Color   -   图表中平仓箭头的标记颜色。

注意:OrdersTotal()函数获取的是所有的订单包括不同品种跟未成交的挂单统统包括在内;
// 全部平仓
int cnt, total;
total = OrdersTotal();
for(cnt=total-1; cnt>=0; cnt--) {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_SELL) {
        OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
    }
    if(OrderType()==OP_BUY) {
        OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
    }

5 如何删除挂单
bool OrderDelete(int ticket, void Color) 删除先前打开挂单。成功返回true,失败返回false。

// 删除所有挂单
int total = OrdersTotal();
for(int i=total-1; i>=0; i--) {
    OrderSelect(i, SELECT_BY_POS);
    int type   = OrderType();
    bool result = false;
    switch(type) {
      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    if(result == false) {
      Print("Order " + OrderTicket() + " failed to close. Error:" + GetLastError());
    }
}

微软发布 Visual Studio 2013 Update 1

去年12月的时候,微软曾为Visual Studio 2013 Update 1的"候选发布"(RC)版本。而今天,该公司终于发布了该补丁的最终版本,并为该软件开发工具带来了一些bug修复。与RC1相比,Update 1最终版没有什么重大变动,不过微软开发者部门副总裁S.Somasegar在今早的一篇博客文章中表示,它确实基于当前用户的反馈而做出了改进。

S.Somasegar指出:"例如,我们听取了在非IE10+环境中运行Visual Studio的问题,并在Update 1中改进了多项体验"。

VS 2013的首个更新(Update 1)主要解决软件启动后的问题,而微软也将在今春晚些时候放出Update 2。该公司早已宣布会在Update 2中为VS2013增加一些新的功能,其中包括Team Foundation Server 2013的首个更新。

尽管微软在2013年10月就放出了Visual Studio 2013的RTM版本,但它直到11月初才正式推出。Somasegar表示,"200万开发人员在线观看了Visual Studio的发布,全世界有成千上万人参与了大会"。

传送门:

Microsoft Visual Studio 2013 Update 1

微软将推新编程语言M#

  微软正在开发一款新的编程语言:M# 。它在 C# 的基础上添加了系统编程特性,可用来构建各种类型的应用,尤其是云计算应用。

  微软员工 Joe Duffy 日前在其个人博客中对M#的主要特性有:

  • Lifetime understanding
  • Side-effects understanding
  • 大规模异步编程(Async programming at scale)
  • 类型安全系统编程(Type-safe systems programming)
  • 现代架构(Modern frameworks)
  • 现代误差模型(Modern error model)

  Joe Duffy 表示,M#相对C#、Java 等其他语言来说,它能在“性能”、“安全与生产力”两方面会达到更好的平衡。同时,他也表示M#最终会开源,有可能就在令人充满期待的 2014 年。他也谈到,之所以开发M#这一新的语言,就是因为现在的编程语言太多的缘故。

  一名自称前微软员工的网友在网站 Reddit 上发帖称,该语言来自 Sing#。Sing#是微软在 2003 到 2010 年研发的实验操作系统 Singularity 的系统语言。

VS2013编译 Duilib & UIDesigner 遇到的问题汇总

1、报找不到 Riched20.lib

解决方法:

在工程属性->链接器中删除Riched20.lib;

在 UIRichedEidt.cpp 文件中找到

if(FAILED(CreateTextServices(NULL, this, &pUnk)))
        goto err;

 

修改为:

HINSTANCE richHandle = NULL;
typedef HRESULT  (_stdcall *_CTS)(
        IUnknown *punkOuter,
        ITextHost *pITextHost,
        IUnknown **ppUnk) ; 
_CTS CTS = NULL;
richHandle = LoadLibraryW(L"Riched20.dll");
if(richHandle == NULL)
    exit(0);
else
{
    CTS = (_CTS)GetProcAddress(richHandle, "CreateTextServices");
    if(NULL == CTS)
        exit(0);
}
// Create Text Services component
if(FAILED(CTS(NULL, this, &pUnk)))
    goto err;
FreeLibrary(richHandle);

 

2、找不到定义 CanAdjustLayout

解决办法:

在 ResourceView.cpp 中注释掉此行

if (CanAdjustLayout())

 

最后送上一个VS2013编译版的最新 UIDesigner

http://pan.baidu.com/s/18D55y

cocos2d-x项目在VS2013编译出错的解决办法

在VS2013编译cocos2d-x的win32项目时,会报错误:

error C2039: “min”: 不是“std”的成员

error C2873: “min”: 符号不能用在 using 声明中

这时需要打开对于报错的.cpp文件,在头部加入

#include <algorithm>