小编Ser*_*dar的帖子

VS2013使用NuGet进行增强

我已经尝试了几天来推动我的Visual Studio 2013 Premium安装工作.我尝试使用zip安装,现在使用NuGet.这两种方法都让我遇到了链接器错误的同一点.

错误:1> LINK:致命错误LNK1104:无法打开文件'libboost_system-vc120-mt-gd-1_57.lib'

我查看了邮件列表以获取提升,发现有人发布了类似的问题,但那是2012年的boost_1_54_0或者其他内容,因此与VS2013或提升1_58_0无关.

我还看了一些论坛帖子,包括SO,但是没有一个我有同样的问题.要么就是这样,要么就是没有回复.

我无法真正辨别错误显示的任何标志,因为这是我第一次使用除STL库或我自己的标头以外的任何其他标志.

任何和所有的帮助将不胜感激,请告诉我是否有任何其他有用的信息.

c++ boost nuget visual-studio-2013

15
推荐指数
1
解决办法
4758
查看次数

如何使用JToken.ToObject <>()方法的JsonConverter?

我正在成功地将一个大型JSON文件读入JObjects.我要反序列化的类型之一具有System.Drawing.Color类型的属性.此属性的JSON具有表示颜色的整数值.当我尝试做ToObject()时,我得到了

将值16711680转换为类型'System.Drawing.Color'时出错.

解决方案似乎是一个简单的JsonConverter,它可以从一个整数转换为一个Color但我无法找到如何将转换器与现有的JObject一起使用.我错过了一些明显的东西吗

c# type-conversion json.net converters

12
推荐指数
1
解决办法
4516
查看次数

链接Visual Studio 2013中的NuGet库

嗨:在Visual Studio 2012 Professional,Update 4中,我可以通过创建一个新的Visual C++项目(使用空白模板)并进入NuGet包管理器控制台并输入以下内容,轻松地创建一个新的OpenGL项目:

Install-Package freeglut
Install-Package glew
Install-Package glm
Run Code Online (Sandbox Code Playgroud)

获取freeglut,glew和glm(仅限标题的数学库)的库.

然后我可以创建一个利用这些库的简单示例:( 完整示例)

#include <GL/freeglut.h>
#include <GL/glew.h>
#include <glm/glm.hpp>

int main(int argc, char *argv[]) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后在没有任何进一步配置的情况下,我可以点击大绿色构建按钮,所有内容都编译,链接和运行(在NuGet包中找到可再发行的.dll)并且工作正常.

在Visual Studio 2013中,相同的方法不起作用:VS2013抱怨它找不到freeglut.lib:

链接:致命错误LNK1104:无法打开文件'freeglut.lib'

如果我手动编辑库路径并将DLL复制到构建输出目录,我可以让项目编译,但这似乎非常不方便.

有趣的是,即使没有设置或更改任何内容,Visual Studio似乎足够聪明,可以查找 freeglut.lib,但它似乎不知道在哪里可以找到它.

这是一个每包难度,还是VS2013改变了Visual Studio处理NuGet包的方式?

c++ freeglut nuget visual-studio-2012 visual-studio-2013

6
推荐指数
1
解决办法
7099
查看次数

Windows:报告事件函数

据我了解,ReportEvent函数需要通过注册表关联的消息文本文件才能接收格式正确的消息。是否有任何常见的事件 ID 或任何简单的方法来报告没有关联消息文本文件的事件?

或者可能是,是否有我可以在我的应用程序中使用的特殊通用事件源?类似 RegisterEventSource(NULL, "Application") 的东西?

windows winapi event-log messageformat

5
推荐指数
1
解决办法
4953
查看次数

Newtonsoft.Json - 从JSON获取反序列化对象的相应行号,以便更好地处理错误

我的应用程序接受来自我反序列化和处理的客户端的长JSON模板.我想向客户提供更好的错误处理信息,其中包含JSON文本中无效对象的lineNumber.请注意,这是针对后处理中发生的错误而不是针对反序列化期间发生的错误,因为这已经由Newtonsoft处理.

作为一个例子,我有以下JSON及其相应的.Net类型

{
    "Version": "1.0.0.0",                        
    "MyComplexObject": [
    {
        "Prop1": "Val1",
        "Prop2": "Val2",
        "Prop3": 1
    }
    ]
}

public class MyComplexObject
{
    [JsonProperty]
    public string Prop1 { get; set; }

    [JsonProperty]
    public string Prop2 { get; set; }

    [JsonProperty]
    public int Prop3 { get; set; }

    **public int LineNumber;
    public int LinePosition;**
}

public class RootObject
{
    [JsonProperty]
    public string Version { get; set; }

    [JsonProperty]
    public List<MyComplexObject> MyComplexObject { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望在反序列化时填充LineNumber和LinePosition属性,以便以后可以使用它.我目前正在使用以下代码反序列化JSON

JsonConvert.DeserializeObject<RootObject>(value: rawJson,settings: mysettings);
Run Code Online (Sandbox Code Playgroud)

感谢任何回复

c# json.net

5
推荐指数
1
解决办法
1324
查看次数

Visual C++ 2010,rvalue参考错误?

它是Visual C++ 2010中的错误还是正确的行为?

template<class T>
T f(T const &r)
{
    return r;
}

template<class T>
T f(T &&r)
{
    static_assert(false, "no way"); //< line # 10
    return r;
}

int main()
{
    int y = 4;
    f(y); //< line # 17
}
Run Code Online (Sandbox Code Playgroud)

我想,函数f(T &&)永远不应该被调用,但是用T = int&调用它.输出:

    main.cpp(10): error C2338: no way
          main.cpp(17) : see reference to function template instantiation 'T f(T)' being compiled
          with
          [
              T=int &
          ]

更新1您是否知道任何C++ x0编译器作为参考?我已经尝试了在线测试驱动但无法编译r值参考.

更新2解决方法(使用SFINAE):

#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_reference.hpp>

template<class T>
T …
Run Code Online (Sandbox Code Playgroud)

c++ rvalue-reference visual-c++ visual-c++-2010 c++11

4
推荐指数
1
解决办法
805
查看次数