小编Der*_*rek的帖子

在另一个静态库中链接静态库

我需要在另一个静态库中链接Abaqus ODB C ++ API静态库。我可以使它“工作”,但会收到很多链接器警告。所有警告均为LNK4006和LNK4221,并且与API库有关。

我想在主项目中链接生成的静态库。当我这样做时,应用程序启动并给我一条消息,例如The application was unable to start correctly 0xc000007b.

如果不清楚: API Lib-> MyProj Lib->MainProj


请在下面查看保罗的回答。您不能像这样嵌套静态库,如果您认为有必要,则需要了解有关链接阶段的更多信息。相反,主项目需要链接两个相关的静态库。

c++ static-libraries visual-studio

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

C++这个函数有什么问题

void webparser(const string siteurl,string filename)
{
    stringstream ss;
    ss << "lynx -dump '" << siteurl << "'" > filename;
    system(ss.str().c_str());
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,如何使用filename而不是file.txt?

最初我的ss系列是

    ss << "lynx -dump '" << siteurl << "' > file.txt";
Run Code Online (Sandbox Code Playgroud)

但我决定改变它以使用参数中的值,所以我添加了文件名.

以下是我的错误消息

main.cpp: In function ‘void webparser(std::string, std::string)’:
main.cpp:244:46: error: no match for ‘operator>’ in ‘std::operator<< [with _Traits = std::char_traits<char>]((* & std::operator<< [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]((* & std::operator<< [with _Traits = std::char_traits<char>]((* & ss.std::basic_stringstream<char>::<anonymous>.std::basic_iostream<char>::<anonymous>), ((const char*)"lynx -dump \'"))), (* & …
Run Code Online (Sandbox Code Playgroud)

c++

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

在静态成员分配之前调用函数

我正在使用第三方API来覆盖C运行时库中的内存管理功能.为了使一切正常工作,我必须在进行任何内存分配之前调用初始化API.

我正在处理的项目使用静态Factory对象,该对象在执行主文件中的任何代码之前动态初始化.

如何确保在静态Factory对象之前初始化API?

c++ design-patterns memory-management static-members

0
推荐指数
2
解决办法
753
查看次数

析构函数没有被调用

根据:http://www.cplusplus.com/doc/tutorial/classes/

析构函数实现了构造函数的相反功能.当一个对象被销毁时会自动调用它,因为它的存在范围已经完成(例如,如果它被定义为函数中的本地对象并且函数结束),或者因为它是一个动态分配的对象并且它被释放使用运算符删除.

示例代码:

    class Something
    {
    public:
        Something() {cout << "construction called" << endl; }
        ~Something()    { cout << "destruction called" << endl; }
    };


    void foo(){
        Something *ob = new Something();
    }

    int _tmain(int argc, _TCHAR* argv[])
    {
        foo();
    }
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
2
解决办法
4682
查看次数

如何使用C将带有2个变量的IF语句转换为开关函数?

我有一个IF语句,我想转换成一个Switch语句......但它有2个变量!是否可以在C上进行?

这是一个摇滚,纸,剪刀游戏:

(R代表岩石,P代表纸张,S代表剪刀)

     char play1, play2;

     printf("\nPlayer 1 - Enter your Play: ");
     scanf ("%c", &play1);
     printf("\nPlayer 2 - Enter your Play: ");
     scanf (" %c", &play2); 


     if (play1 == 'R' && play2 == 'P') {
       printf ("Paper wins!"); }
      else if (play1 == 'R' && play2 == 'S') {
        printf ("Rock wins!");}
      else if (play1 == 'R' && play2 == 'R) {
        printf ("Draw!");}
Run Code Online (Sandbox Code Playgroud)

我必须为其他选项做这个,所以最好使用开关!

c variables if-statement switch-statement

0
推荐指数
2
解决办法
732
查看次数

为什么这个62的结果?

唯一让我想到的是,MULT((3 + 2)(5*4))= 100不是62?有人可以解释一下吗?

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define ADD(x1, y1) x1 + y1
#define MULT(x1,y1) x1 * y1


int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c,d,e,f,g;
    a=2;
    b=3;
    c=4;
    d=5;
    e= MULT(ADD(a,b),MULT(c,d));
    printf("the value of e is: %d\n", e);
    system("PAUSE");
}
Run Code Online (Sandbox Code Playgroud)

c c++ operators

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