小编and*_*dre的帖子

错误:所选处理器不支持ARM模式`wfi'

我在尝试编译ARM嵌入式C程序时遇到以下错误(我使用YAGARTO作为我的交叉编译器).我想弄清楚这个错误意味着什么,以及纠正它的步骤是什么.从我迄今为止所做的研究来看,它似乎是一个问题wfi,而wfe不是ASM指令.我怎么能解决这个问题?

\cc9e5oJe.s: Assembler messages:
\cc9e5oJe.s:404: Error: selected processor does not support ARM mode `wfi'
\cc9e5oJe.s:414: Error: selected processor does not support ARM mode `wfe'
\cc9e5oJe.s:477: Error: selected processor does not support ARM mode `wfi'
make: *** [STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.o] Error 1
Run Code Online (Sandbox Code Playgroud)

c embedded assembly arm stm32

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

Boost :: Split使用整个字符串作为分隔符

我想知道是否有一个方法使用boost :: split来分割一个字符串,使用整个字符串作为分隔符.例如:

str ="xxaxxxxabcxxxxbxxxcxxx"

有没有一种方法来分析这个字符串使用"abc"作为分隔符?因此返回:

结果将是字符串"xxaxxxx"和"xxxxbxxxcxxx"

我使用"is_any_of"谓词知道boost :: split,但是调用"is_any_of("abc")"会导致将字符串拆分为单个字符'a','b'和'c',这不是我想要的.

任何帮助,将不胜感激.

谢谢

c++ string boost tokenize

10
推荐指数
2
解决办法
8236
查看次数

如何更改QTableView的标题背景颜色

以下是我目前正在尝试的内容.标题文本正确更改颜色,但背景不会更改默认值.

template<typename T>
inline QVariant TableModel<T>::headerData(int section, Qt::Orientation orientation, int role) const
{
    //...
    else if(role == Qt::BackgroundRole) {
        return QBrush(m_display.headerBackground);
    }
    //...
}
Run Code Online (Sandbox Code Playgroud)

如何设置背景颜色?

c++ qt qtableview qabstracttablemodel

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

错误[P​​e513]:无法将类型为"void*"的值分配给"uint8_t*"类型的实体

我试图将C项目转换为C++.

在C项目中,我在编译成c ++时反击了这个错误:

错误[P​​e513]:无法将类型为"void*"的值分配给"uint8_t*"类型的实体

以下代码给出了此错误:

#define RAM32Boundary  0x20007D00
uint8_t *pNextRam;
pNextRam = (void*)RAM32Boundary;// load up the base ram
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这在C中做了什么以及如何将其转换为C++?

c c++ embedded iar

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

在函数中传递 NULL 作为参数

我创建了一个书本课,作为我作业的一部分,我正在研究它,但它似乎有一个我在下面的代码中无法理解的问题,这是我的代码

private:
Book (string N = " ", int p = 100, string A = "",
        string P = "", string T = "", int Y = 2000)
{
    cout << "Book constructor start " << N << endl;
    Title=N;
    pages=p;
    Author=A;
    Publisher=P;
    Type=T;
    Yearpublished=Y;
}

~Book(void)
{
    cout << "Book destructor start " << Title << endl;
    system("pause");
}

public:
static Book * MakeBook(string N = "", int p = 100, string A = "",
        string P = "",string …
Run Code Online (Sandbox Code Playgroud)

c++

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

QScrollArea小部件未随Flowlayout扩展

我有一个带有QScrollArea小部件的ui 。在QScrollArea使用的FlowLayout。我的问题是,当我将小部件添加到布局中时,滚动区域开始滚动并且在有扩展空间时不会扩展。我希望在滚动条首先出现之前将滚动区域扩展到其极限。

如何在滚动条出现之前扩大滚动区域?

c++ qt flowlayout qscrollarea

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

boost :: interprocess :: named_mutex vs CreateMutex

我想从切换CreatMutexboost::interprocess::named_mutex限制我的应用程序的单个实例.当应用程序运行并且结束时,两种方法都有效.但是,当应用程序崩溃并使用时,锁定不会被释放boost::interprocess::named_mutex.我可以通过使用两个name_mutex解决该问题,但我真的不明白这个问题.

为什么boost::interprocess::named_mutex在应用程序崩溃但未释放时锁定未释放CreatMutex?有什么不同?


boost::interprocess::named_mutex mutex(boost::interprocess::open_or_create, "my_mutex");
boost::interprocess::scoped_lock<boost::interprocess::named_mutex> lock(mutex, boost::interprocess::try_to_lock);
if(!lock) {
    return 1; //exit
}
//application may crash here.
boost::interprocess::named_mutex::remove("my_mutex");
return 1; //exit
Run Code Online (Sandbox Code Playgroud)

c++ windows mutex single-instance boost-interprocess

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

无法分配给重载的dereference(*)运算符

我为我的模板类重载了dereference运算符:

 template <class T> class Node {

 public:
     T *pointer;
     T operator*() { return *pointer; }
 };
Run Code Online (Sandbox Code Playgroud)

我希望能够写入main中的指针:

Node<int> n;
*n = 33;
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

我应该如何重载此运算符才能写入指针?

c++ templates pointers overloading operator-keyword

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

如何让CMenu弹出菜单消失?

我的应用程序在系统托盘中有一个弹出菜单。我遇到的问题是,如果不选择某个项目,我无法让菜单消失。

当我单击窗口中的其他位置时,如何使弹出菜单消失?

这是使弹出菜单出现的代码:

LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    if( message == WM_MYMESSAGE && lParam == WM_RBUTTONDOWN)
    {
        m_menu.CreatePopupMenu();        
        POINT point;

        GetCursorPos(&point);
        m_menu.AppendMenu(MF_POPUP, WM_MAXIMIZE, _T("Maximize"));
        m_menu.AppendMenu(MF_POPUP, WM_EXIT, _T("Exit"));
        m_menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);

    }
    return CDialog::WindowProc(message, wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用CMenu::DestroyMenu但没有运气。

c++ mfc visual-studio-2010 windows-7

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

将子类作为父类传递给方法

class Method {
  public:    
  virtual void Rum();
};
class Euler : public Method {
  virtual void Rum() {
    printf("ahoj\n");
  }    
};
class Kutta : public Method {
  virtual void Rum() {
    printf("ahoj2\n");
  }    
};
class Simulator {
  public:
  Method *pointer;
  Simulator();
  void setmethod(Method m) { pointer = &m; }
};

int main() {
  Simulator s;
  s.setmethod(new Kutta());
  s.pointer->Rum();
  s.setmethod(new Euler());
  s.pointer->Rum();
}
Run Code Online (Sandbox Code Playgroud)

我希望这个例子足够好理解。我试图应用继承原则,但我得到了这些错误:(OOP 的东西在我的脑海中似乎有点混乱)

prog.cpp: In function ‘int main()’:
prog.cpp:26: error: no matching function for call to ‘Simulator::setmethod(Kutta*)’
prog.cpp:21: note: …
Run Code Online (Sandbox Code Playgroud)

c++ oop

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