dll中声明全局变量问题(看过以前的帖子了,照着做却不对)
纪俊 2003-01-25 04:06:25 下边我写的一个dll文件(我把多余的都删掉了,只留下框架部分),另外与工程名称相同的Project1.bpr中我也写了
SEGMENTS SHSEG CLASS 'SHCLASS' SHARED
在程序中对两个函数的调用都没有问题,但是我声明的全局变量a就是起步到作用(编译通过了)。请高手指点。
#pragma option -zRSHSEG // 改变缺省数据段名
#pragma option -zTSHCLASS // 改变缺省数据类名
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
int a=0;//此处想让a为全局变量,我在程序中先调用了gethwnd,让a=100,但是在调用第二个函数LowLevelKbProc时却显示a=0.
//55555555555555555555请高手指点阿!谢谢
extern "C" _stdcall _declspec(dllexport) void gethwnd(HWND hwnd);
void _stdcall gethwnd(HWND hwnd)
{
extern int a;
a=100;
}
extern "C" _stdcall _declspec(dllexport) LRESULT CALLBACK LowLevelKbProc(int nCode,WPARAM wParam,LPARAM lParam);
LRESULT _stdcall CALLBACK LowLevelKbProc(int nCode,WPARAM wParam,LPARAM lParam)
{
extern int a;
ShowMessage(a);
return 1;
}
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}