0
私のプロジェクトは、既存のプロセスに注入されるDLLです。 私のコードは次のようになります。クエリを実行中にMySQL Connector C++がクラッシュする
void Authenticator::initialize(string server, string username, string password, string database, string tablePrefix, int securityLevel){
sqlServer = server;
sqlUsername = username;
sqlPassword = password;
sqlDatabase = database;
try {
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
sql::PreparedStatement *pstmt;
driver = get_driver_instance();
con = driver->connect(server, username, password);
con->setSchema(database);
}
}
bool Authenticator::authenticate(string username, string password, int &errorCode){
try{
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
sql::PreparedStatement *pstmt;
driver = get_driver_instance();
stmt = con->createStatement();
res = stmt->executeQuery("SELECT username, password FROM mybb_users WHERE username = '" + username + "' AS _mybbpassword");
return true; //password is correct
}
catch(sql::SQLException &e){
errorCode = 0; //unable to connect to mysql server
return false;
}
}
私は初期化::認証を実行している、proccessは数秒フリーズしますが、それはOKです。ただし、Authenticator :: authenticateを実行すると、DLLがクラッシュして例外エラーが発生します。
(私はそれをデバッグすることができない、唯一の方法は、それが注入されますどのようにcorretプログラムである)そして、はい、私が持っているDLLは、あなたが初期化されていないを使用している
とにかくコンパイルできないような孤立したコード断片ではなく、質問を編集し、[mcve]を含めてください。 –
@SamVarshavchik表示することはあまりありませんが、MySQL Connector C++のDLLプロジェクトのみがドキュメント化されています。 –