1 在一个win32的dll的源代码中,为什么主cpp文件(也就是dll提供给外部使用的函数放的地方),没有对应的.h文件了?但是现在我想在这个cpp中使用静态的全局变量,不知道该如何添加静态变量让我使用
2 主cpp里面有部分函数提供给外部使用似乎在一个function的头文件声明了,这样居然也可以,不知道是什么原因?(按我理解应该是对应工程文件的头文件来作这样的事情)但是还有另外一部分却没有声明(这也能使用),可是如果我想自己加些函数又说我是不能识别的parameter,请问我该如何添加自己的函数和函数实现
2 主cpp里面有部分函数提供给外部使用似乎在一个function的头文件声明了,这样居然也可以,不知道是什么原因?(按我理解应该是对应工程文件的头文件来作这样的事情)但是还有另外一部分却没有声明(这也能使用),可是如果我想自己加些函数又说我是不能识别的parameter,请问我该如何添加自己的函数和函数实现
2、没看明白
1 主cpp文件全部都是一些函数(包括对外的short __declspec(dllexport) __stdcall这样的方式声明的函数,还有一些都是对外函数使用的函数)
类似如下
a.cpp文件
short __declspec(dllexport) __stdcall a (HANDLE *hCom, char *com_port,int deviceNO)
{
...
int para1 = b(deviceNO);
...
}
int b(int device)
{
....
}
......
function 的头文件
short __declspec(dllexport) __stdcall a (HANDLE * hCom, char *com_port,int action=nfc_device_comm);
......
再添加一次试试
2 我上面列出的说明你应该可以看出,我觉的a.cpp文件里面的函数如果要声明也应该在a.h文件来声明,可是却在function.h里面声明了,而我如果想在a.cpp文件那些函数的 基础上添加几个函数,可是会报该函数是不可识别的,请问我该怎么弄才能添加上自己的函数(给dll内部使用)
这个就是dll的源代码!!!我想在这个基础上进行自己的修改和完善,但是我vc很弱,所以。。
主cpp文件包含了函数声明的头文件,而b函数在a的实现之前声明了就可以。你想添加的函数报什么错?
在.cpp的开始处(所有#include)后面添加静态变量。
如:
static int g_size = 10;
哦,经过你的提醒,回忆到c的语法了,经过调整,已经编译通过 ,但是全局的静态变量怎么弄?
在其它地方声明它,用extern
我按照你教的,添加了,编译没问题,但是在使用这些变量的地方右键选中转到变量定义的地方,结果报该变量没有定义,请问这怎么解决了?
另外我这些定义的全局静态变量是否当dll载入的时候就初始化且一直存在到dll卸载?
其他地方?如果仅仅是这个cpp里面的函数使用了?能不能给出段代码
比如
a.cpp文件
static handle mygod;
.....
short __declspec(dllexport) __stdcall a (HANDLE *hCom, char *com_port,int deviceNO)
{
...
a = createfile(mygod,*********------这样用可以么?
int para1 = b(deviceNO);
...
}
int b(int device)
{
....
}
......