小编art*_*stv的帖子

对于名称或类型具有特定语言链接意味着什么?

根据(c)ANSI ISO/IEC 14882:2003,第127页:

链接规范嵌套.当链接规范嵌套时,最里面的规则确定语言.链接规范不会建立范围.链接规范只应在命名空间范围内发生(3.3).在链接规范中,指定的语言链接适用于声明引入的所有函数声明符,函数名和变量名的函数类型.

extern "C" void f1(void(*pf)(int));
// the name f1 and its function type have C language
// linkage; pf is a pointer to a C function

extern "C" typedef void FUNC();
FUNC f2;
// the name f2 has C++ language linkage and the
// function's type has C language linkage

extern "C" FUNC f3;
// the name of function f3 and the function's type
// have C language linkage

void (*pf2)(FUNC*);
// the name of the variable …
Run Code Online (Sandbox Code Playgroud)

c c++ standards linkage extern-c

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

Windows cmd中的虚拟命令

在linux中我们有makefile:

$(foreach A,a b,echo $(A) &&) true
Run Code Online (Sandbox Code Playgroud)

它工作和回声

a
b
Run Code Online (Sandbox Code Playgroud)

现在我们想将它移植到Windows.我在Windows中发现的最短命令什么都不做:

if 0==1 0
Run Code Online (Sandbox Code Playgroud)

所以makefile示例看起来像

$(foreach A,a b,echo $(A) &&) if 0==1 0
Run Code Online (Sandbox Code Playgroud)

Windows中的框中是否有任何虚拟命令(实际上什么都不做)?还是任何好的黑客?

windows cmd batch-file nop

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

如何优化共享库的大小?

假设我们有很多不必要的功能巨大的静态库(在下面的例子中,我们有图书馆lib1.a,并lib2.a与不需要的功能g1()f2()).

我们想用一些导出的方法构建共享库,这些方法只使用那些巨大的库中的一些函数/类.请参见下面的示例:我们要导出函数foo().

质询

  1. 我们可以告诉linker(ld)我们想要导出哪些函数/方法(就像我们在Windows中为DLL做的那样)?
  2. 链接器可以解析依赖并删除不需要的函数/方法吗?或者还有其他方法可以解决问题吗?
  3. 如果您有解决方案,请写下以下示例的修复程序.

档案1.h:

int f1( int n );
int g1( int n );
Run Code Online (Sandbox Code Playgroud)

档案2.h:

int f2( int n );
Run Code Online (Sandbox Code Playgroud)

档案foo.cpp:

#include "1.h"
#include "2.h"

int foo( int n )
{
    return f1( n );
}
Run Code Online (Sandbox Code Playgroud)

档案1.cpp:

int f1( int n ) { return n; }
int g1( int n ) { return n; }
Run Code Online (Sandbox Code Playgroud)

档案 …

c++ optimization shared-libraries android-ndk

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

子进程stdin不会获取由父进程发送的数据

父进程将字符串写入"Message\n"子进程stdin.但是子进程没有收到它.代码中的问题在哪里?

Qt 4.7.3

父流程代码:

// class TestParent : public QMainWindow
void TestParent::createChildProcess()
{
    childProcess = new QProcess( this );
    connect( childProcess, SIGNAL( started() ),
        this, SLOT( childProcessStarted() ) );
    connect( childProcess, SIGNAL( bytesWritten( qint64 ) ),
        this, SLOT( bytesWritten( qint64 ) ) );
    childProcess->start( "TestChild.exe", QProcess::ReadWrite );
}

void TestParent::writeToChildProcessOutput()
{
    qint64 bytesWritten = childProcess->write( "Message\n" );
    qDebug() << "ret: " << bytesWritten << " bytes written";
}

void TestParent::bytesWritten()
{
    qDebug() << "slot: " << bytesWritten << …
Run Code Online (Sandbox Code Playgroud)

qt stdin qprocess

7
推荐指数
2
解决办法
4164
查看次数

如何强制QWidget显示在单独的窗口中?

我有

class MyWidget : public QWidget
{
    Q_OBJECT
public:
    explicit MyWidget (QWidget *parent);
    // ...
};

// here is ALL the code in MyWidget constructor
MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    glWidget = new GLWidget(this, cluster);

    QHBoxLayout *mainLayout = new QHBoxLayout;
    mainLayout->addWidget(glWidget);
    setLayout(mainLayout);

    setWindowTitle("Visualization");
}
Run Code Online (Sandbox Code Playgroud)

和主窗口MainWindow w;.

我想要

  1. 从中创建MyWidget的新实例w;
  2. 在之后QCloseEvent或之后要销毁的实例w(现在它们只在之后被销毁QCloseEvent);
  3. 那些实例出现在新窗口中.

我正在创建这样的新实例MyWidget:

void MainWindow::visualize()
{
    MyWidget *widg = new MyWidget(this); // or widg = new MyWidget(0)
    widg->show();
    widg->raise();
    widg->activateWindow(); …
Run Code Online (Sandbox Code Playgroud)

qt4 qwidget

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

如何在Qt中创建HTML元素?

Qt在WebKit(QWebNode,QWebElement等)上有自己的包装器.

如何使用该Qt包装器创建HTML元素(获取新HTML元素的QWebElement)?

如果它可以帮助,说我们有QWebFrame frame.

html qt webkit qtwebkit

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

如何删除具有NULL值的列?

如何删除NULL查询中的单元格,因为即使CompanyName不存在某些记录也会出现?

SELECT ClientID, CompanyName, FirstName, LastName, Street, City
  FROM Client
  WHERE CompanyName LIKE '%G%' Or FirstName LIKE '%J%' OR LastName LIKE '%J%'
  OR Street LIKE '%J%' OR City LIKE '%J%' Or ContactNo LIKE '%0%'
  AND ClientTypeID = 2
Run Code Online (Sandbox Code Playgroud)

sql

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

C++下的跨进程交互

请帮忙,我如何组织流程 - 流程数据交换(在Windows中,如果重要)?

process1.exe这就要求process2.exe有一些命令行参数.我想跟踪的"进步" process2process1(比方说,一些int值).它(该int值)可以process1永久访问或每X毫秒 - 无关紧要.

将是有用的任何解决方案:WinApi或Qt.

谢谢大家!所有答案都非常有用!:) 非常感谢!!

c++ windows interaction cross-process

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