Projem, mevcut proccess'e enjekte edilecek DLL'dir. Benim kod şöyle görünür:MySQL Bağlayıcısı C++ sorguyu yürütürken çöküyor
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;
}
}
Ben başlatmak :: Authenticor'ı koşuyorum, proccess birkaç saniye donar ama sonra tamam. Ancak, Authenticator :: authenticate çalıştırırken, DLL bazı özel durum hatasıyla kilitlenir.
(bunu debug olamaz, tek yol enjekte Nelerin içine corret programında olduğu) Ve evet, var DLL başlatılmamış kullanıyorsunuz
Sorunuzu düzenleyin ve her zaman gösterildiği gibi derlemeyi başaramayan izole kod parçaları yerine [mcve] ekleyin. –
@SamVarshavchik gösterecek çok şey yok, sadece MySQL Connector C++ ile belgeleme yoluyla DLL proje. –