以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  [求助]关于动态库的问题?(开辟内存共享)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=52261)


--  作者:neuhw
--  发布时间:9/5/2007 5:40:00 PM

--  [求助]关于动态库的问题?(开辟内存共享)
请大家帮我看一下这个程序!!!!!!!!!!!!!!!!!!!!!!!
创建动态库:
----------------com.h----------------------------------------------------------------------------------
#ifdef COMAPI
#else
#define COMAPI extern "C" _declspec(dllimport)
#endif
COMAPI  int INITPRO(int id, char *name);
COMAPI  SYSTYPE *MAPSYS();

 
----------------com.cpp----------------------------------------------------------------------------------

#define COMAPI  extern "C" _declspec(dllexport)
#include <windows.h>
#include    <main.h>

COMAPI int INITPRO()
{
  extern SYSTYPE *Psys;  //申明为外部变量
  SYSTYPE   *MAPSYS();

// Map to SYSCOM memory
  if ((Psys = MAPSYS()) == NULL)
      return 1;
return 0;
}

COMAPI extern SYSTYPE *MAPSYS()
{
extern  SYSTYPE  *Psys;
extern  HANDLE   hSA;
extern  PVOID     pSA;

//内存共享空间,自己做的函数,没问题
if ((pSA = openSA(1, hSA)) == NULL )
    return NULL;
Psys = (SYSTYPE*)pSA;
    return Psys;
}

----------------main.h-----------------------------------------------------------------------

SYSTYPE *Psys;
HANDLE hSA;
PVOID pSA;

typedef struct{
   int a;
   int b;
}SYSTYPE;

-------------main.cpp----------------------------------------------------------------------
#include  "com.h"
#inlcude  "main.h"
#pragma comment(lib, "..\com\COM.lib")

int    Errcode;

void main()
{
    //Initialize the common share area
    if( Errcode = INITPRO()  )
    {
         return;
     }
   
    //出错的地方,得不到Psys的地址????????????  
     Psys->a = 1.0;
     Psys->b = 2.0;   

}

编译时这个程序能通过,可是执行main.exe文件时出错,调试时得不到Psys的地址空间,
请问这是什么问题?该这么解决?谢谢  


--  作者:neuhw
--  发布时间:9/6/2007 7:47:00 AM

--  
难道没有人帮助我解决一下这个问题吗?
太失望了
--  作者:一分之千
--  发布时间:9/6/2007 8:51:00 AM

--  
初始化的时候是不是应该把自己定义的变量传到动态库里进行初始化,而不是使用一个全局变量的外部声明?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
39.063ms