C++ 中warning C4251请大家进来帮忙看看

wu_yue_chuan 2008-05-26 10:18:10
typedef struct _transaction_process
{
char TX_CODE[9];
char TX_NAME[61];
char TX_MAIN_SERIAL[24];
}

_transaction_process m_trans_process;

在VC++6.0中编译报错为:warning C4251: 'm_trans_process' : struct '_transaction_process' needs to have dll-interface to be used by clients of class 'CBuMainData'
see declaration of '_transaction_process'
始终不明白C4251这个错误究竟warning在哪里,请各位大虾指导谢谢。
...全文
2557 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
机智的呆呆 2008-05-26
  • 打赏
  • 举报
回复
Visual C++ 概念:生成 C/C++ 程序
编译器警告(等级 1)C4251

错误消息
“identifier”: 类“type”需要由类“type2”的客户端使用 dll 接口


要在使用 __declspec(dllexport) 导出类时使数据损坏的可能性降到最小,请确保:

通过从 DLL 导出的函数访问所有静态数据。

类的任何内联方法都不能修改静态数据。

类的所有内联方法都不使用 CRT 函数或使用静态数据的其他库函数(有关更多信息,请参见 PRB:跨 DLL 边界传递 CRT 对象时可能出现的错误)。

如果 EXE 和 DLL 中的实例化具有静态数据差异时,类的任何方法(无论是否为内联)都不能使用类型。

通过定义一个 DLL 可以避免导出类,该 DLL 定义一个具有虚函数的类,您可以调用这些函数对该类型的对象进行实例化和删除。 然后在该类型上调用虚函数即可。

有关导出模板的更多信息,请参见 http://support.microsoft.com/default.aspx?scid=kb;zh-cn;168958。

如果要从标准 C++ 库中的类型派生,并且要编译调试版本 (/MTd),而且编译器错误信息引用 _Container_base,则在 Microsoft Visual C++ 2005 中可以忽略 C4251。

复制代码
// C4251.cpp
// compile with: /EHsc /MTd /W2 /c
#include <vector>
using namespace std;
class Node;
class __declspec(dllimport) VecWrapper : vector<Node *> {}; // C4251

楼主参考下这
http://msdn.microsoft.com/zh-cn/library/esew7y1w(VS.80).aspx


wu_yue_chuan 2008-05-26
  • 打赏
  • 举报
回复
试过了还是报同样的warning,救命~~~~也查过在论坛上关于C4251,基本上没有明白意思,哪位能帮忙看看呢。
ouyh12345 2008-05-26
  • 打赏
  • 举报
回复
同意楼上
仔细看一下typedef的用法
  • 打赏
  • 举报
回复
typedef struct{
char TX_CODE[9];
char TX_NAME[61];
char TX_MAIN_SERIAL[24];
} _transaction_process ;
定义改成这样试试?
1、这是一个C/C++新手基础教程,合适完全不懂程序的新手入坑,半生不熟的程序入坑,其他语言的程序想学C++。2、这是一个C++基础系列教程,本季是作为基础教程的第一集,主要为学习C语言,为学好C++打好坚实的基础,C++包含了C部分,要学好C++,学好C语言是必然的趋势。3、C++入行系列教程是一个由浅入深的一个过程,第一第二集主要学习C语言和C++,后面三集主要教大家如何用C++去写封装一些商业级案例,。第三集主要学SOCKET编程,了解熟悉socket编程。第四集主要学用C++自定义数据库,纯C++编写 第五集主要学习数据结构,学习C++的各个标准模板库。大家如有兴趣可以学习已经制作完毕的C++游戏服务器和Mysql数据库教程。4、C++入行系列教程不单单是讲解语法知识,还有另外讲解C/C++内存,以及内存优化,工作经常用到的经验,以及避免一些坑。5、本季教程主要内容是讲解编程语言,计算机组成原理,开发环境,C语言基础语法。普及一些基础知识,并且结合工作经验讲解一些案列。教程后面会安排一些工作任务给学员。具体内容看教程课题大纲6、不保证每个人都学的会,良心之作,不喜勿买。7、教程会结合本人20年工作经验讲解工作经常用到的地方,以及新手入职面试需要注意的地方。打好基础学好C++走遍天下都不怕,相信自己,你行的。8、每一集都是单独的,需要单独购买噢,亲,看清楚,C++系列每一集 并不是必须购买的。新手朋友第一第二集是必须学购买的哈,千万记得。切记切记切记

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧