小编Ami*_*yan的帖子

哪个HTTP库更好?Wget,cUrl,LibWWW还是......?

哪个库更适合HTTP?Wget,cUrl,LibWWW还是别的什么?

我想要一个可移植的C/C++库.

谢谢

curl wget libcurl

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

如何从ANSI字符(char)转换为Unicode字符(wchar_t),反之亦然?

如何从ANSI字符(char)转换为Unicode字符(wchar_t),反之亦然?

是否有用于此目的的跨平台源代码?

c++ wchar-t char

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

是否有指向空的文件指针(FILE*)?

出于某些原因,我需要一个指向任何内容的文件指针(FILE*).这意味着我可以将它传递给fprintf函数并且fprintf忽略文件指针.

例如:

void my_function()
{
  FILE* nothing = NULL; // NULL is not correct.
  int n = fprintf(nothing, "PI = %f", 3.14); // Note: When nothing = NULL, error ocured.
}
Run Code Online (Sandbox Code Playgroud)

是否有指向空的文件指针(FILE*)?

c++ file-pointer

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

如何将LKM(可加载内核模块)链接到静态或动态库?

搜索后,我找不到任何LKM使用静态或动态库的示例.

我想创建静态和动态库(可能使用标准C库或任何其他库),然后开发一个使用我自己的静态和动态库的LKM.

如何将LKM(可加载内核模块)链接到静态或动态库?

c static-libraries linux-kernel dynamic-library

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

GCC错误:嵌套名称说明符中使用的不完整类型'claculator'

我开发了一个库,当我用GCC编译我的代码时(在带有CodeBlocks的Windows中),源代码无法编译并出现此错误:

错误:嵌套名称说明符中使用的不完整类型'claculator'.

我编写了一个完全生成此错误的示例代码:

class claculator;

template<class T>
class my_class
{
    public:

    void test()
    {
        // GCC error: incomplete type 'claculator' used in nested name specifier
        int x = claculator::add(1, 2);
    }

    T m_t;
};

// This class SHOULD after my_class.
// I can not move this class to top of my_class.
class claculator
{
    public:

    static int add(int a, int b)
    {
        return a+b;
    }
};

int main()
{
    my_class<int> c;
    c.test();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

请注意我的源代码在Visual Studio中成功编译.

谢谢.

c++ compiler-construction gcc

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

如何将assert宏实现为方法?

我希望将实现断言宏作为C++中的方法,如.NET Framewrk.

例如在C#中,我们可以像这样调用assert方法:

Debug.Assert(index > -1);
Run Code Online (Sandbox Code Playgroud)

我希望实现断言这样的东西:

#include <assert.h>
class debug
{
  public:

    static void my_asset(<condition>) // like assert macro
    {
      // ?
    }
};
Run Code Online (Sandbox Code Playgroud)

使用此课程时:

debug::my_asset(index > -1); // Actually should be called assert(index > -1);
Run Code Online (Sandbox Code Playgroud)

谢谢

编辑:

我想在调用时debug::my_asset(index > -1);,它显示正确的文件名和行号,它的工作方式类似于C++资产宏.

c++ methods macros assert

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

如何在mac中使用gcc链接到carbon?

我在 mac 中开发了一个使用碳的应用程序。

我的 IDE 是 Code::Blocks(GCC 编译器)。我的代码编译成功但没有链接。

#include <iostream>
#include <Carbon/Carbon.h>

using namespace std;

int main()
{
    //CGEventFlags flags = CGEventSourceFlagsState(1);

    while(true)
    {
        CGEventSourceStateID eventSource = kCGEventSourceStateCombinedSessionState;
        bool b = CGEventSourceKeyState(eventSource, kVK_Command) && CGEventSourceKeyState(eventSource, kVK_ANSI_Period);
        if(b)
        {
            cout << "Yes" << endl;
        }
        else
        {
            cout << "No" << endl;
        }
    }

    cout << "Hello world!" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何在mac中使用gcc链接到carbon?

c++ macos macos-carbon

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

我应该在.NET(例如C#)项目中使用WinRT API吗?

我对WinRT和.NET感到困惑.

这些名称空间:http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx存在于WinRT中但它们不完整(例如System.IO不存在).

对于套接字编程,有两个名称空间:

1- System.Net.Sockets在.NET库中.

Windows.Networking.SocketsWinRT中的2-

我应该在.NET项目中使用WinRT API吗?如果答案是"是"那么为什么我应该使用WinRT API而不是.NET API?

.net windows-runtime

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

我可以根据C标准分配超过65535个字节吗?

malloc 定义如下:

void *malloc(size_t size);
Run Code Online (Sandbox Code Playgroud)

http://pubs.opengroup.org/onlinepubs/009695399/functions/malloc.html


size_t 定义(stddef.h):

size_t: Unsigned integer type of the result of the sizeof operator. http://pubs.opengroup.org/onlinepubs/009604499/basedefs/stddef.h.html


但根据此页面,最大限制size_t为65535.(其他整数类型的部分限制):

size_t的限制:SIZE_MAX 65535 http://pubs.opengroup.org/onlinepubs/007904975/basedefs/stdint.h.html


这是否意味着当我想尊重C标准时,我不能分配超过65535个字节?

c malloc size-t

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

什么是":: operator new"和":: operator delete"?

我知道new并且delete是关键词.

int obj = new int;
delete obj;

int* arr = new int[1024];
delete[] arr;
Run Code Online (Sandbox Code Playgroud)

<new>header是C++标准头文件的一部分.它有两个运算符(我不确定它们是运算符还是函数):

::operator new

::operator delete

这些运算符使用如下:

#include <new>
using namespace std;

int* buff = (int*)::operator new(1024 * sizeof(int));
::operator delete(buff);
Run Code Online (Sandbox Code Playgroud)

什么是":: operator new"和":: operator delete"?它们newdelete关键字不同吗?

c++ new-operator delete-operator operator-keyword

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