#if defined(_DEBUG)
#define X_EXPORT __declspec(dllexport)
#else
#define X_EXPORT __declspec(dllimport)
#endifclass X_EXPORT TestIn
{
public:
void Get( void ){};
};class X_EXPORT TestOut
{
public:
void Get( void );
};void TestOut::Get( void ){};// warning C4273: “TestOut::Get” : dll 链接不一致
// 为什么会这样子呢?
// 这是一个 DLL 工程
// 当将类的功能实现提到外面去就会出现这个警告, 而在内部就不会
// 如何将这个警告去掉呢, 不要告诉我使用#pragma warning(disable:4273)// 谢谢各位大大侠

解决方案 »

  1.   

    class X_EXPORT TestOut
    {
    public:
    void Get( void );
    };void TestOut::Get( void ){};在VC6.0下面这样子是不会出警告的(在头文件里面定义)如果是这样子的话,一样还是会出警告的
    // testout.h
    class X_EXPORT TestOut
    {
    public:
    void Get( void );
    };// testout.cpp
    void TestOut::Get( void ){};这与VC或VC.NET应该是没有关系的吧。
      

  2.   

    晕死中........
    怎么都来不会VC.NET呀..................................-________________-在VC++6.0里面也是一样的呀, 一样会出现这种问题的......
      

  3.   

    Visual C++ 概念:生成 C/C++ 程序   编译器警告(等级 1)C4273“function”:dll 链接不一致文件中的两个定义在 DllImport 的使用上不同。下面的示例生成 C4273:// C4273.cpp
    char __declspec(dllimport) c;
    char c;   // C4273, delete this line or the line above to resolveint main()
    {
    }
      

  4.   

    // testout.h
    class X_EXPORT TestOut
    {
    public:
    void Get( void );
    };// testout.cpp
    void TestOut::Get( void ){};////////////////////////////////
    绝对绝对没有在别的地方声明过这个类...
    所以~~~~~~~这段提示是.NET MSDN里面的, 我看过了, 我新建一个工程出来做试验也是没有通过
    __declspec(dllexport)  使用这种方式就不会出警告
    __declspec(dllimport)  使用这种方式就会出警告还请大侠再帮忙看看, 谢谢了
      

  5.   

    help me~~~~~~~~~~~~~~~~
    thx~~~~~~~~