小编Mic*_*ick的帖子

经验丰富的C程序员的C++教程

我一直在C语言编程25年,但从未使用过C++.我现在需要学习C++编程的基础知识.任何人都可以推荐最适合我的在线教程(或失败的那本书).谢谢.

编辑:我实际上需要C++纯粹是为了向一个庞大而老的C程序添加几个脏黑客的目的.将整个程序转换为正确编写的OO代码在经济上是不可行的.有些人批评了建议的解决方案,因为他们会让我走上成为"C级程序员而不懂C++的C++程序员"的道路 - 但实际上这完全符合我的要求.

编辑:顶部投票答案中的链接似乎现在被打破,但文件似乎存在于多个地方 - 例如这里.

c++

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

应用内结算(v3) - IllegalArgumentException:服务未注册:

我刚刚发布了一个应用内付款的应用.到目前为止,没有报告谷歌播放崩溃(这只发生在用户麻烦报告崩溃时)但我确实有一些崩溃报告(这是自动的).崩溃报告如下:

class java.lang.RuntimeException
Msg: android.app.ActivityThread.performDestroyActivity:3655 (Unable to destroy activity {com.mycompany.mygame/com.mycompany.mygame.Splashscreen}: java.lang.IllegalArgumentException: Service not registered: com.mycompany.mygame.util.IabHelper$1@46369b38)
Run Code Online (Sandbox Code Playgroud)

这只发生在我的应用程序的执行次数的<1%.

如果我错了,请纠正我,但似乎在乱舞报告中没有给出崩溃的行号:-(

我甚至不确定崩溃报告的含义,更不用说如何修复它了.有任何想法吗?

android in-app-purchase

46
推荐指数
1
解决办法
6825
查看次数

重复播放后Mediaplayer错误(-19,0)

我有一个游戏,当一个关卡完成时会播放声音.一切正常,但在重复10或20次后,logcat突然报告:"MediaPlayer错误(-19,0)"和/或"MediaPlayer启动状态0调用"并且声音不再生成.

我最初的所有声音都是mp3格式,但是在阅读ogg可能更可靠之后,我将它们全部转换为ogg,但错误看起来是一样的.

知道如何解决这个问题吗?

android android-mediaplayer

43
推荐指数
3
解决办法
2万
查看次数

为什么调试器不知道#define'd常量?

在调试我的代码时,我经常想知道#defined'd常量的值.但调试器似乎并不知道它们的值.这意味着我必须围绕查看包含路径等来查找#define行.是否有一些技巧可以让这更容易?

更新:我不得不向Tony D授予绿色标记以详细回答标题问题,但我也赞成使用const而不是#define(我也测试了它enum也有效).最后使用F12找到原来的#define线是另一个好主意.

c++ debugging visual-studio-2015

26
推荐指数
2
解决办法
2435
查看次数

如何判断Proguard是否已完成其工作

我下载了封装在一个zip文件中的proguard并将其解压缩到我的硬盘上.我没有以任何方式安装它(因为我不知道如何).然后我添加proguard.config=proguard.cfg到我的project.properties文件中.然后我做了一个"导出android应用程序"完全期望eclipse抱怨它不知道我的proguard安装在哪里,但没有抱怨.确实,我的密钥库中出现了一个新的apk文件,并且我的应用程序的proguard子目录中出现了一组文件(dump.txt等).mapping.txt看起来像是一个很好的从长变量名到一个和两个字母变量的映射列表.这应该都是proguard以某种方式工作的有力证据 - 我唯一关心的是apk几乎没有以前那么小.有没有办法检查apk是否包含proguard的混淆?

java eclipse android

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

当X未定义时,为什么没有"#if X"警告?

我偶尔会编写类似这样的代码:

// file1.cpp
#define DO_THIS 1

#if DO_THIS
    // stuff
#endif
Run Code Online (Sandbox Code Playgroud)

在代码开发期间,我可以切换DO_THIS0到1之间的定义.

最近我不得不重新安排我的源代码并将一些代码从一个文件复制到另一个文件.但我发现我犯了一个错误,这两个部分已经分开了:

// file1.cpp
#define DO_THIS 1
Run Code Online (Sandbox Code Playgroud)

// file2.cpp
#if DO_THIS
    // stuff
#endif
Run Code Online (Sandbox Code Playgroud)

显然我修正了错误,但后来想到了自己,为什么编译器没有警告我?我的警告级别设置为4. #if X当X未定义时,为什么不可疑?

还有一个问题:如果我在其他地方犯了同样的错误,是否有任何系统的方法可以找出?这个项目很大.

编辑:我可以理解#ifdef没有任何警告是完全合理的.但肯定#if是不同的.

c++ visual-studio-2008 c-preprocessor

21
推荐指数
2
解决办法
7507
查看次数

eclipse如何知道你的项目名称?

我在磁盘上有一个完全工作的项目(比如说它叫做"mygame"),它包含多个活动.首先被调用的活动称为"启动器".我希望将项目称为"com.mycompany.mygame",但是当我在eclipse中执行导入项目并选择项目的根目录时,会出现一个对话框,指出位于此目录的项目是"com" .mycompany.mygame.launcher"无法改变它.我的问题是,eclipse用什么来确定我的项目名称为"com.mycompany.mygame.launcher"?这是清单中的东西吗?

eclipse android

21
推荐指数
3
解决办法
8505
查看次数

铃声选择器 - 单选按钮设置

我可以成功调出一个铃声选择器并使用以下代码获得结果uri ...

    selsound_button.setOnClickListener(new OnClickListener()
    {   
        public void onClick(View arg0)
        {
            Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:");
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_ALARM);
            startActivityForResult( intent, 999);   
        }
    });
Run Code Online (Sandbox Code Playgroud)

...但我没有弄清楚如何做到以下几点:

鉴于我已经知道当前的uri,我希望告诉选择器当前选择它以便它可以突出显示正确的单选按钮.目前,在我按下其中一个之前,根本没有选择任何无线电按钮.

android radio-button

20
推荐指数
2
解决办法
7016
查看次数

java.lang.NoClassDefFoundError:com.google.ads.AdView

我正在尝试将admob广告合并到我的应用中.到目前为止,我已经在我的应用程序的主要活动的onCreate方法中添加了以下代码...

    adView = new AdView(this,AdSize.BANNER,"my code number");
    adView.loadAd(new AdRequest());
Run Code Online (Sandbox Code Playgroud)

程序编译没有错误,但在运行时我收到消息java.lang.NoClassDefFoundError: com.google.ads.AdView.我已经看到了问题的解释和解决方法,但是我看不出它是如何适用于我的项目的,因为我的项目中没有"lib"或"libs"目录.

根据eclipse的SDK管理器,我拥有我使用的所有内容的最新版本.

java eclipse android admob

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

如何维护应用程序的付费和免费版本

我已经建立了一个游戏应用程序的免费版本,现在市场上有一个像com.mycompany.myfreegame这样的名字.现在我想制作一个付费版本.毫无疑问,对于未来几年所需的两个版本都将进行调整和错误修复,因此我想以尽可能紧凑的方式封装免费与付费信息的编码,以便我可以同时修复两个版本中的错误.

如果在运行时处理了两个版本之间的全部差异,那么我可以在源代码中设置一个标志,这将是问题的结束.不幸的是还有两件事需要考虑,

  1. 两个版本之间的包名称需要不同.
  2. 有些xml需要不同.例如,免费版本需要线性布局来保存广告,而付费版本则不需要.

实现这一目标的最简单方法是什么?

java eclipse android

17
推荐指数
1
解决办法
2887
查看次数