小编Ale*_*lex的帖子

Doxygen不会处理main.cpp

所以我是新手使用Doxygen,我能够让它顺利运作.我能够记录我的类和结构,并完美地生成HTML文件.我遇到的问题是它不会解析我的main.cpp文件.所有的类和结构都有自己的.h和.cpp文件,它们处理得很好.如何让Doxygen为main.cpp制作文档?它没有.h文件,因为这是程序开始和结束的地方.我甚至都不知道要把什么放在主文件的.h文件中.我在Windows中使用Doxywizard.

编辑:

我把它放在main中,它会生成一个主页面:

/**
@mainpage

This is a test application.

@author Alex
@date 10/21/2010
@version 1.0
*/
Run Code Online (Sandbox Code Playgroud)

但是在函数原型的文件中,我有这个并且它没有被解析:

/**
@brief Error handler for the PDF writer.

It does nothing. It just has to exist.
*/
void error_handler (HPDF_STATUS   error_no,
                    HPDF_STATUS   detail_no,
                    void         *user_data)
{
}
Run Code Online (Sandbox Code Playgroud)

doxygen mainclass doxywizard

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

如何在React-Kotlin中导入节点模块?

我使用create-react-kotlin-app命令创建了一个应用,并且可以在Chrome中正常加载。我通过NPM添加了React Material UI包,并成功了。现在如何在组件中使用Material UI模块?

通常使用JavaScript,它很简单import Button from '@material-ui/core/Button',位于组件文件的顶部,但是Kotlin不喜欢这样。

如何将那条线翻译成Kotlin?我没有使用Gradle。

javascript kotlin reactjs create-react-kotlin-app

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

如何在锁定用户主窗口的同时使Qt对话框获取信息?

我有一个Qt主窗口,会弹出一个对话框,其中有一个OK和Cancel按钮.这个对话框有一个简单的微调器,当按下OK或Cancel时,要求用户输入一个应该返回主窗口的数字(对于取消,它只会发回-1).

我想在mainWindow.cpp中的信号中使用代码,如下所示:

void mainWindow::slot_openNumberDlg(){
    // Create a new dialog
    numberDlg dlg( this );

    // Show it and wait for Ok or Cancel
    if( dlg.exec() == QDialog::Accepted ){
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果按下按钮时它被销毁,我如何将对话框中的微调器的值返回到主窗口?

我还考虑了一个替代解决方案,我将在mainWindow的构造函数中初始化对话框,但是直到一个信号激活mainWindow.cpp中的一个插槽才会显示它,如下所示:

// Create as pointer in main.h:
numberDlg *dlg;

// Initialize pointer and setup listener in constructor (main.cpp):
mainWindow::mainWindow(){
    dlg = new numberDlg();
    QObject::connect( dlg, SIGNAL( sig_retVal(int) ), ui->widget, SLOT( slot_showNum(int) ) );
}

// Make a function to handle show/close:
void mainWindow::slot_numberOpenClose(bool trigger){
    if(trigger){
        dlg->show();
    } else { …
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

为什么libxml2在元素名称上输出“文本”(当不是“文本”时)?

我使用libxml2进行XML解析。libxml网站上的示例代码很难遵循,并且似乎缺少一些细节。我通过Googling找到了以下代码,所以我什至都不认为这是正确的方法,但是它在我编写的示例学习程序中有效,但在本程序中却无效。我仍然不知道在C ++中使用libxml的正确方法,所以我在黑暗中运行,希望能找到有用的东西。

XML文件可以正确加载,并且此函数可以root->name正确输出,但是当它通过子级时,它只会text在XML 输出,cur->name我不知道为什么。我必须将计数器放在那里以阻止它进入无限循环。我在XML文件中的空白处读取了可能导致此问题的信息,但我不知道该怎么办。我只想要零件名称和ID。

xmlNode *cur = root;
cur = cur->xmlChildrenNode;

ofstream out;
out.open("errorlog.txt", ios::app);
out << "attempting reading current node\n";
out << "root: " << root->name << endl;

int counter = 0;

// advance until it hits stars
while(cur != NULL && counter < 10){
if ((!xmlStrcmp(cur->name, (const xmlChar *)"parts")))
    break;

    cur->next;
    counter++;
}

out << "counter: " << counter << endl;
out << "child: " << cur->name << endl;
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的XML文件:

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

c++ libxml2

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

如何获取libxml2的内容?

我正在使用libxml2和C++.以下功能在此处崩溃return (char*)cur->content;.当我将其更改return (char*)cur->name;为时,它将返回attribute哪个是标签的名称.我想要的是1,2和3(基于C++代码下面的XML文件).我究竟做错了什么?

char* xml2sdf::getId(xmlNode* part){

    xmlNode* cur = part->xmlChildrenNode;

    // get the id
    while (cur != NULL) {

        if ( !xmlStrcmp(cur->name, (const xmlChar *)"attribute") ) {
            xmlAttrPtr attr = cur->properties;

            if( !xmlStrcmp( attr->children->content, (const xmlChar*)"id" ) ){
                return (char*)cur->content;
            }
        }

        cur = cur->next;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

它正在解析的XML文件的一部分:

<part ref="part10" name="part10">
    <attribute name="face">7</attribute>
    <attribute name="id">1</attribute>
</part>

<part ref="part20" name="part20">
    <attribute name="face">5</attribute>
    <attribute name="id">2</attribute>
</part>

<part ref="part30" name="part30">
    <attribute name="face">9</attribute>
    <attribute name="id">3</attribute>
</part>
Run Code Online (Sandbox Code Playgroud)

c++ libxml2

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

为什么我无法将字符串添加到组合框?

这看起来微不足道,但使用 MFC 时,我总是会遇到一些愚蠢的微不足道的问题,从而导致我的工作流程停止。

我收到指向 afxcmn2.inl 第 352 行的“调试断言失败”错误:

_AFXCMN_INLINE int CComboBoxEx::AddString(LPCTSTR lpszString)
    { UNUSED_ALWAYS(lpszString); ASSERT(FALSE); return CB_ERR;}
Run Code Online (Sandbox Code Playgroud)

我试图在初始化时将一些字符串添加到组合框,如下所示:

BOOL myDialog::OnInitDialog()
{
    CDHtmlDialog::OnInitDialog();
    cb_direction.AddString(CString("North"));
}
Run Code Online (Sandbox Code Playgroud)

Google 上的大多数答案似乎都表明 AddString 发生在 OnInitDialog 之前,但这里的情况似乎并非如此。谷歌上的另一系列答案表明数据交换没有发生或者是错误的,但事实并非如此:

void myDialog::DoDataExchange(CDataExchange* pDX)
{
    CDHtmlDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_WHEDIT_DIR, cb_direction);
}
Run Code Online (Sandbox Code Playgroud)

另一个建议是组合框尚未创建,但是如果我使用以下代码禁用组合框,我不仅不会收到错误,而且它实际上可以工作并禁用该框!

BOOL myDialog::OnInitDialog()
{
    CDHtmlDialog::OnInitDialog();
    cb_direction.EnableWindow(FALSE);
}
Run Code Online (Sandbox Code Playgroud)

我已经清理了解决方案并重建了它。我不确定我还缺少什么。我想做的就是向组合框添加一个字符串,这在 .Net 中需要 2 秒(这个程序是几年前由其他人编写的,这就是为什么它在 MFC 而不是 .Net 中,但我离题了) 。

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

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

有没有办法在不写入实际文件的情况下将 CString 发送到 CFile?

我有数据存储在 a 中CString,它需要由 XML 解析器库解析。问题是 XML 解析器接受一个CFile. 将 写出CString到文本文件然后将其重新加载到CFile. 有什么方法可以直接发送CStringCFile而不制作中间输出文件?

c++ mfc visual-studio

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