VC工程,嵌入了C的源代码,混合编译成一程序,结果是相互间的数据结构不认识,编译错误。
该怎么办?我分两种情况介绍,只要一种能通就行。1、VC的DL.h文件内容:
struct DATA
{
CArray<double,double> IO_in;
CArray<double,double> IO_out;
CArray<double,double> AD_in;
CArray<double,double> AD_out; int m_iInit; //系统初始化标志
int m_iZKW_2C;
int m_iAC;
int m_iAD;
int m_iXDL;
int m_iXHP;
int m_iIO2;
}
extern struct DATA m_data;
这个结构,要想让C代码访问,该怎么做?2、C代码的map.h文件内容:typedef struct
{
unsigned char stVal;
Q_STRUCT q; ---这也是结构
UTC_TIME_STRUCT t; ---这也是结构
unsigned char subEna;
unsigned char subVal;
Q_STRUCT subQ; ---这也是结构
}ST_STRUCT;typedef struct
{
MX_STRUCT aci_YC_BUF[aci_YC_NUM];
MX_STRUCT dbm_YC_BUF[dbm_YC_NUM];
MX_STRUCT che_YC_BUF[che_YC_NUM];
}MX_STRUCT;extern YC_DATA_STRUCT YC_DATA_BUF;
VC++如何访问到这个结构?
该怎么办?我分两种情况介绍,只要一种能通就行。1、VC的DL.h文件内容:
struct DATA
{
CArray<double,double> IO_in;
CArray<double,double> IO_out;
CArray<double,double> AD_in;
CArray<double,double> AD_out; int m_iInit; //系统初始化标志
int m_iZKW_2C;
int m_iAC;
int m_iAD;
int m_iXDL;
int m_iXHP;
int m_iIO2;
}
extern struct DATA m_data;
这个结构,要想让C代码访问,该怎么做?2、C代码的map.h文件内容:typedef struct
{
unsigned char stVal;
Q_STRUCT q; ---这也是结构
UTC_TIME_STRUCT t; ---这也是结构
unsigned char subEna;
unsigned char subVal;
Q_STRUCT subQ; ---这也是结构
}ST_STRUCT;typedef struct
{
MX_STRUCT aci_YC_BUF[aci_YC_NUM];
MX_STRUCT dbm_YC_BUF[dbm_YC_NUM];
MX_STRUCT che_YC_BUF[che_YC_NUM];
}MX_STRUCT;extern YC_DATA_STRUCT YC_DATA_BUF;
VC++如何访问到这个结构?
解决方案 »
- 调用COM组件的问题
- 希望实现类似 PHOTOSHOP 图片拖拉改变大小,移动图片功能,希望得到提示!!!
- 求救,请问怎么连接带密码的access数据库?
- 调用动态库中的函数的时候出现:Unhandled exception in ExpData.exe (NTDLL.DLL): 0xC0000005: Access Violation.
- 急求解决方法
- Delete file
- 请问这是什么错误?
- _variant_t和string,或int类型怎么转换?
- 在控件上画图时产生了一个运行时的指针错误,请高手指教。
- 为什么我在VC中每一次运行程序,都提示所有文件需要编译?
- VS2008下CMDIFrameWndEx中为何添加CDialogBar无法显示?
- 无线网络监听程序
extern "C"
{
#endif
struct DATA
{
...
};#ifdef __cplusplus
}
#endif至于在C中使用C++定义的模板类CArray,似乎找不到好的解决办法