c++ - 不允许使用非托管类的句柄

标签 c++ mysql winforms user-interface clr

我正在尝试在 C++ Windows 窗体和 mysql 数据库之间建立连接, 但它向我显示了这个错误。

a handle to a non-managed class is not allowed

        #pragma endregion
        private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
            std::string^ constring =L "datasource=localhost;port=**;username=root;password=**";
            MySqlConnection^ conDataBase=gcnew MySqlConnection(constring);
            MySqlCommand^ cmdDataBase=gcnew MySqlCommand("",conDataBase);
        }
    };
}

最佳答案

std::string 是 C++ 标准库中的字符串类。您不能将它与 ^ 一起使用(即,作为托管类)。

改为使用 .NET String 类:

System::String^ constring = L"datasource=localhost;port=**;username=root;password=**";

关于c++ - 不允许使用非托管类的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49215845/

相关文章:

c++ - C/C++ 处理程序 SIGFPE 是什么?

php MySQL 获取一个月或几天之间缺少的一天

c# - 如果 RichTextBox 的文本不会改变,则忽略 KeyDown

java - 通过数据库表搜索id Java不工作

c# - 如何独立于数据加载 UI

c# - 带底边框的文本框

c++ - 子类不继承祖 parent 属性

c++ - 表达式 'ab' == "ab"在 C++ 中是否为真

c++ - 为什么我不能在列表迭代器上使用 += 运算符?

mysql - SQL 查询运行速度极慢