小编Nem*_*ric的帖子

在visual studio 2012中使用.lib(C++)

我有一个.lib静态库.我已在链接器设置"附加库目录"和"附加依赖项"下链接它,以及使用它pragma comment (lib, "mylib")..所有这些都很好.

我在问什么,我看起来似乎只能找到链接解决方案,是如何实际使用它中的功能.如果我的静态库中引用了一个函数'MyFunc',我该如何调用它?Visual Studio当前不识别库中定义的任何名称空间或函数.

谢谢!

c++ using static-libraries function-call .lib

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

结构中的函数指针

如何在Struct中使用函数指针?具体来说,给出以下示例,程序编译但运行时崩溃:

在头文件中

 #ifndef __FUNCTION_IN_STRUCT_H_
 #define __FUNCTION_IN_STRUCT_H_


struct functionDaemon {
     int id;
     //double (*funcp); // function pointer
     double  (*fp)(double);      // Function pointer
 };

 // #define NULL 'V'

 #endif /* _FUNCTION_IN_STRUCT_H_ */
Run Code Online (Sandbox Code Playgroud)

在C文件中:

#include <math.h>
#include <stdio.h>

#include "function_in_struct.h"

extern struct functionDaemon *ftnAgent;

void do_compute_sum (void) {

     void* agent;
    // struct functionDaemon *ftnAgent = (struct functionDaemon *) agent;
    struct functionDaemon *ftnAgent;

    double  sum;

    // Use 'sin()' as the pointed-to function
    ftnAgent->fp = sin;
    sum = compute_sum(ftnAgent->fp, 0.0, 1.0);
    printf("sum(sin): %f\n", sum);

} …
Run Code Online (Sandbox Code Playgroud)

c c++ struct pointers

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

递归解除引用指针

在尝试回答这里的一个问题时,我发现了这个问题:

如何递归取消引用指针(C++ 03)?

答案的改编代码如下:

template<typename T> T& dereference(T &v) { return v; }

template<typename T> const T& dereference(const T &v) { return v; }


template <typename T>
typename std::enable_if<!std::is_pointer<T>::value, T&>::type
dereference(T *v) {
     return dereference(*v);
}
Run Code Online (Sandbox Code Playgroud)

但是,在此测试中,无法将指针指向取消引用到值类型:

template <typename T>
class A
{
public:
         bool compare(T a, T b){
                return dereference(a) < dereference(b);
        }


};

int main()
{

        int u = 10;
        int *v = &u;
        int **w = &v;

        int i = 5;
        int *j = &i;
        int **k …
Run Code Online (Sandbox Code Playgroud)

c++ templates pointers enable-if c++11

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

单独模块中枚举的未定义标识符错误

我在使用单独模块中定义的枚举时遇到麻烦.当我尝试访问它时,我收到"未定义的标识符"错误:

// CodeEnum.d

enum CodeEnum
{
    OK = 200,
    FAIL = 400
}

unittest
{
    auto e = CodeEnum.OK; // Works!
}
Run Code Online (Sandbox Code Playgroud)

-

// Reply.d

import CodeEnum;

unittest
{
    auto.e = CodeEnum.OK; // Error: undefined identifier 'OK'
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

顺便说一句,我也把它发布到了digitalmars-d-learn,但是我没有在互联网上看到我的电子邮件(列表存档或论坛) - 列表是以某种方式调节的吗?

d

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

为什么这个简单的C++程序不会编译?

这是我非常简单的C++函数:

#include <string.h>


void myFunc(void * param)
{
        string command;
}
Run Code Online (Sandbox Code Playgroud)

为什么不编译?

% CC -c -o testFunc.o testFunc.C
"testFunc.C", line 6: Error: string is not defined.
1 Error(s) detected.
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×4

pointers ×2

.lib ×1

c ×1

c++11 ×1

d ×1

enable-if ×1

function-call ×1

static-libraries ×1

struct ×1

templates ×1

using ×1