小编som*_*ley的帖子

#ifdef与预编译头文件无法正常工作

我有一些代码如下:

#define FEATURE_A 1

void function()
{
// some code

#ifdef FEATURE_A
    // code to be executed when this feature is defined
#endif

// some code

}
Run Code Online (Sandbox Code Playgroud)

该程序不会在#ifdef - #endif中执行代码.但是,当我将#ifdef更改为#ifndef并删除#define宏时,代码就会被执行.下面的代码按预期工作.

//#define FEATURE_A 1

void function()
{
// some code

#ifndef FEATURE_A
    // code to be executed when this feature is defined
#endif

// some code

}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么在#ifdef中的第一个案例代码- #endif没有执行,在第二种情况下它工作?谁能告诉我什么设置可能是错的?

不知道是不是这件事,我正在使用visual studio 2010.

提前致谢

更新: 当我清理并重新运行时,第二个也无法正常工作.它只在编辑器中显示为启用的代码.

当我在project-> property-> Configuration Properties-> c/c …

c++ macros

7
推荐指数
1
解决办法
5228
查看次数

twitter4j => AndroidRuntime(446):java.lang.NoClassDefFoundError:twitter4j.http.AccessToken

我正在尝试使用twitter4j为我的应用程序连接并发布到Twitter.我正在学习本教程.我从这里下载了示例项目并尝试运行它android 2.3.3.我确信我Constants.java根据我的Twitter开发者网站正确修改了文件.在TwitterUtils.java我进入OAUTH_TOKENOAUTH_TOKEN_SECRET也.但运行后,我收到以下错误消息:

> E/dalvikvm(374): Could not find class 'twitter4j.http.AccessToken', referenced from method com.ecs.android.sample.twitter.TwitterUtils.isAuthenticated

>W/dalvikvm(374): VFY: unable to resolve new-instance 67 (Ltwitter4j/http/AccessToken;) in Lcom/ecs/android/sample/twitter/TwitterUtils;

>D/dalvikvm(374): VFY: replacing opcode 0x22 at 0x0010

>D/dalvikvm(374): VFY: dead code 0x0012-002f in Lcom/ecs/android/sample/twitter/TwitterUtils;.isAuthenticated (Landroid/content/SharedPreferences;)Z

>E/dalvikvm(374): Could not find class 'twitter4j.http.AccessToken', referenced from method com.ecs.android.sample.twitter.TwitterUtils.sendTweet

>W/dalvikvm(374): VFY: unable to resolve new-instance 67 (Ltwitter4j/http/AccessToken;) in Lcom/ecs/android/sample/twitter/TwitterUtils;

>D/dalvikvm(374): VFY: replacing opcode 0x22 at 0x0010

>D/dalvikvm(374): …
Run Code Online (Sandbox Code Playgroud)

twitter android twitter4j

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

C# - 如何在运行时获取'class with generic parameter'?

我有一个泛型类,如下所示:

using System.Collections.Generic;

namespace MyNameSpace
{
    public class MyClass<T> : MyAnotherClass
    {
        public MyClass();
        public MyClass(T obj);
        public T Object { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么下面的代码行返回null(throwing exception with message : "Could not load type 'MyClass' from assembly '//assembly details//' ")

Type MyClassType = AssemblyContaingMyClass.GetType("MyNameSpace.MyClass");
Run Code Online (Sandbox Code Playgroud)

Assembly.GetType(className)与泛型类一起使用是违法的吗?

您能否建议在运行时获取泛型类的替代方法?

如果这个问题太基础,请提前致谢并道歉.我是c#的新手.

编辑:

忘了提.包含MyClass的程序集将在运行时加载.

c#

4
推荐指数
2
解决办法
2765
查看次数

读取".txt"文件以外的文件内容

如何在c/c ++中读取不是简单文本文件的文件内容?例如,我想读取.jpg/.png/.bmp等图像文件并查看某个索引处的值,检查它是什么颜色的?或者如果我有.exe/.rar/.zip并想知道在不同的索引存储什么值?我知道c风格的阅读文件,这是

FILE *fp;

fp = fopen("example.txt","r"); /* open for reading */

char c;

c = getc(fp) ;
Run Code Online (Sandbox Code Playgroud)

我想知道我是否用"image.png"替换"example.txt",它会起作用吗?我会得到正确的数据吗?

c c++ file-handling

3
推荐指数
1
解决办法
1789
查看次数

如何在运行时实例化此"具有泛型参数的类"

考虑以下代码行:

classA<classB> C;
Run Code Online (Sandbox Code Playgroud)

我想通过使用System.Reflection在运行时创建C的实例.为此,我需要在运行时知道classA和classB的类型.

我知道如何获得classB的类型

Type classBType = AssemblyContaingClassB.GetType("namespace.classB");
Run Code Online (Sandbox Code Playgroud)

Q1>如何使用此classBType获取classA的类型?

Q2>我明白要在运行时创建实例,我们调用以下代码行:

object C = Activator.CreateInstance(TypeName);
Run Code Online (Sandbox Code Playgroud)

要创建C的实例,代码上面应使用什么TypeName?将足以创建此实例的classA类型

如果这个问题太基础,请提前致谢并道歉.我是c#的新手.

编辑:

问题是固定的.从pswg的答案来看,使用泛型参数获取类的类型存在问题.可以在此处找到有关如何获取通用参数类型的解决方案.之后我就做了pswg的回答建议及其工作.

c#

3
推荐指数
1
解决办法
357
查看次数

使用string的c_str()函数的C++奇怪行为

我正在将我的项目从Visual Studio 06移动到2010.在这样做时,我在我的代码中观察到了这种行为.我有一个Get字符串函数,如下所示:

string GetTheStr() 
{ 
        return strSomeStdString; 
} 
Run Code Online (Sandbox Code Playgroud)

然后有另一个函数调用上面的get函数,如下所示:

const char* ptrStr = (char *)GetTheStr().c_str();
Run Code Online (Sandbox Code Playgroud)

ptrStr指向的字符串的值是""

上面的代码在visual studio 06中运行良好,但在visual studio 2010上却没有.

然后我尝试了几个实验:

std::string str = GetTheStr(); // -> value inside str displayed correctly
const char* PtrCStr = str.c_str(); // -> value pointed by PtrCStr displayed correctly
const char* PtrData = str.data(); // -> value pointed by PtrData displayed correctly
const char* ptr = (char *)GetTheStr().c_str(); // -> value pointed by ptr NOT displayed correctly
Run Code Online (Sandbox Code Playgroud)

我想知道为什么最后一行不起作用.任何人都可以告诉我为什么上面的行为发生在Visual Studio 2010而不是视觉工作室06?

提前致谢 :)

c++ stdstring

1
推荐指数
2
解决办法
926
查看次数

无法将当前JSON数组反序列化为类型

我正在尝试反序列化以下JSON数据:

{
  "bids": [
    [
      "392031.00000000",
      "0.00254444"
    ],
    [
      "390000.00000000",
      "0.52917503"
    ],
     ......
    ],

   "asks": [
    [
      "392999.00000000",
      "1.00000000"
    ],
    [
      "393000.00000000",
      "0.31572236"
    ],
    .....
    ]
}
Run Code Online (Sandbox Code Playgroud)

我已经研究过类似的问题,比如这一个,但我没有得到接近的结果,也注意到,在这个问题JSON的结构并不类似.

我的反序列化代码如下

public class OrderBookElement
{
    // I've also tried below commented code
    //[JsonProperty(PropertyName = "0")]
    //public double price { get; set; }

    //[JsonProperty(PropertyName = "1")]
    //public double volume { get; set; }

    List<double> values;
}
public class OrderBookResponse
{
    [JsonProperty(PropertyName = "bids")]
    List<OrderBookElement> bids { get; set; }
    [JsonProperty(PropertyName = …
Run Code Online (Sandbox Code Playgroud)

c# json json.net deserialization

-1
推荐指数
1
解决办法
165
查看次数