我正在使用 MSVS 9 (VS 2008)。我的应用程序以及共享库(dll)(我用来链接我的应用程序)也是 c++ 环境。现在观察以下情况:
- 当共享库/dll以调试模式构建并且我的应用程序也以调试模式构建时结果:应用程序执行成功 
- 当共享库/dll以发布模式构建并且我的应用程序也以发布模式构建时结果:应用程序成功执行 
- 当共享库/dll 在发布模式下构建并且我的应用程序也在调试模式下构建时结果:应用程序在没有从调用堆栈加载任何符号的情况下崩溃。 - 调用栈: - ntdll.dll!76e94684() 
 [下面的帧可能不正确和/或丢失,没有为 ntdll.dll 加载符号]- ntdll.dll!76e7d55f() 
 ntdll.dll!76e5fa18()
 ntdll.dll!76e2b3c8()
当我尝试在我的应用程序中使用以下 SetName() 和 GetName() 定义时,会出现此问题。
    using namespace std;
    void main()
    { 
        Schema * schemaExp = new Schema();
        schemaExp -> SetName("ExpSchema");
        string srctable;
        srctable=schemaExp->GetName();
        cout <<"\nConnection EXPORT using the target table:" << srctable.c_str()  << endl;
        delete schemaExp;
    }
模式类定义:
    using namespace std;
    class Schema
    {
       public:
       TELAPI_EXPORT void   SetName(char *name); 
       TELAPI_EXPORT string     GetName(); 
      protected: 
       string tableName; 
    };
    void Schema::SetName(char *name)
    { 
       string str(name);
       tableName = str; 
    }
    string Schema::GetName()
    {
      return tableName;
    }
注意:以上只是我的应用程序的一部分,我的应用程序仅在 #3 中崩溃,并且在上面的 #1 和 #2 情况下工作正常
请帮我解决这个问题。非常感谢任何形式的帮助。
提前致谢。