小编Tim*_*ing的帖子

仅限C++前端编译器(将C++转换为C)

我目前正在管理从单个源代码树(Win32,Linux,Verifone CC终端,MBED甚至Nintendo GBA/DS)在多个平台上运行的一些C++代码.但是,我需要构建一个针对没有C++编译器(仅限C)的嵌入式平台的应用程序.我重申许多早期的C++编译器只是在现有C编译器(例如Glockenspiel使用MSC)上的前端.是否有任何今天使用的"前端"C++编译器将生成C代码.

                      Tools            Platform
                      -----------      ------------

                ______Visual C++ _____ WIN32
               /
              /_______MBED (ARM)_______MBED (ARM dev board).
             /
            /_________GCC (x86)________Linux
           /
Source____/___________GCC (ARM)________GBA/DS
          \
           \__________SDA______________Verifone Verix CC Terminals
            \
             \________ARM SDT__________Verifine VerixV CC terminals
              \
               \______????_____________Renases M8/16/32.
                \
                 \____????_____________Z8 family.
Run Code Online (Sandbox Code Playgroud)

最后两个平台我有很好的C编译器,但没有C++.

正如您所看到的,我支持各种各样的平台,并且我共享大量的库代码(以及一些应用程序代码).

c c++ embedded cross-platform

24
推荐指数
3
解决办法
9633
查看次数

编辑文本缓冲区

好的,这是一个有点厚颜无耻的问题.我想构建一个简单的文本编辑器(使用我自己的文本模式屏幕处​​理).我只想要一个可用于表示文本缓冲区的数据结构的好例子,以及一些简单的char/text插入/删除示例.我自己可以处理所有其余代码(文件i/o,控制台i/o等).一个很好的简单编辑器源的链接将很棒(C或C++).

c c++ open-source editor

16
推荐指数
5
解决办法
6404
查看次数

我可以将Visual Studio 2005设置为在调试时忽略特定代码区域中的断言

这是场景.我正在调试我自己的应用程序(C/C++),该应用程序正在使用公司另一个团队开发的一些库.当我的代码生成一些边缘情况时,断言失败.这是一个痛苦,因为断言没有正确配置,所以库函数工作正常,但我得到所有这些中断,我只需要继续(很多作为它在循环中)所以我可以得到我真正感兴趣的东西由于其他原因,我必须在调试时使用库的调试版本.另一个团队不会解决这个问题直到下一个版本(嘿,它适用于我们的机器).

我可以告诉调试器忽略这段代码断言的断点(即它可以为我自动继续).

c c++ debugging assert visual-studio-2005

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

如何自动创建具有最新编译时间的文件并将其包含到库中?

我有一个包含大约100个源文件的库.如果已经编译了任何其他文件,我希望其中一个源始终重建,但我不希望每次运行make/build时都构建它.

基本上我希望这个文件内置最后的构建日期/时间,因此链接到库的任何应用程序都可以检查上一个构建时间/日期.有没有其他方法可以做到这一点?

c c++ makefile build

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

Win32 API计时器

我正在使用系统定时器(clock()函数,请参阅time.h)来计算一些串行和USB通信.我需要的只有大约1毫米的准备.我注意到的第一件事是个别时间可以超出(加或减)10毫秒.随着事件的发生,对一些较小的事件进行定时导致时间不准确.总体时间略好一些.在MSDN上有点根后,我偶然发现了Windows多媒体库中的计时器(timeGetTime(),参见MMSystem.h).这对于1ms级别来说具有良好的准确性要好得多.

然后发生了奇怪的事情,经过几天完美无瑕的工作(可爱的日志和有用的时间)这一切都变成了梨形,因为这个API也开始显示这种奇怪的粒度(而不是一堆小通信消息需要3ms,2ms,3ms,2ms,3ms等它出现了0ms,0ms,0ms,0ms,15ms等.重新启动PC恢复了正常的准确性,但在一些不确定的时间(一小时左右之后),anomoly返回.

任何人都对如何在Windows XP(32位Pro,使用Visual Studio 2008)上获得这种级别的计时准确性有任何想法或建议.

我的小时间班:

class TMMTimer
{
public:
    TMMTimer( unsigned long msec);
    TMMTimer();

    void Clear() { is_set = false; }
    void Set( unsigned long msec=0);

    bool Expired();
    unsigned long Elapsed();

private:
    unsigned long when;
    int roll_over;
    bool is_set;
};



/** Main constructor.
 */
TMMTimer::TMMTimer()
{
    is_set = false;
}




/** Main constructor.
 */
TMMTimer::TMMTimer( unsigned long msec)
{
    Set( msec);
}




/** Set the timer.
 *
 * @note   This sets the timer to some point in the …
Run Code Online (Sandbox Code Playgroud)

c c++ winapi system timer

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