错误LNK2031,LNK2028,LNK2019,LNK2001

时间:2013-04-14 15:07:49

标签: mysql visual-c++ mysql-connector

所以我能够使用命令提示符在visual c ++中成功构建程序。这是一个简单的程序,从数据库读取然后根据一些变量写入数据库。所以我决定让它变得更加花哨并添加一个按钮。我把所有内容都和之前的相同,发布了相同的代码,没有cout和cin,但我收到了这段代码

  

1> stdafx.obj:错误LNK2028:未解析的令牌(0A00000D)" public:__ clrcall sql :: SQLString :: ~SQLString(void)" (?? 1SQLString @sql @@ $$ FQAM @XZ)在函数" public:virtual __clrcall sql :: mysql :: MySQL_Savepoint :: ~MySQL_Savepoint(void)"中引用(?? 1MySQL_Savepoint @ mysql @sql @@ $$ FUAM @XZ)

     

1> new test mysql.obj:错误LNK2028:未解析的令牌(0A00001E)" public:__ clrcall sql :: SQLString :: ~SQLString(void)" (?? 1SQLString @sql @@ $$ FQAM @XZ)在函数" private:void __clrcall newtestmysql :: Form1 :: mysqltest(void)"中引用(?mysqltest @ Form1 @ newtestmysql @@ $$ FA $ AAMXXZ)

     

1> stdafx.obj:错误LNK2001:未解析的外部符号" public:__ clrcall sql :: SQLString :: ~SQLString(void)" (?? 1SQLString @sql @@ $$ FQAM @XZ)

     

1> new test mysql.obj:错误LNK2019:未解析的外部符号" public:__ clrcall sql :: SQLString :: SQLString(char const * const)"在函数" private:void __clrcall newtestmysql :: Form1 :: mysqltest(void)"中引用了(?? 0SQLString @sql @@ $$ FQAM @ QBD @ Z) (?mysqltest @ Form1 @ newtestmysql @@ $$ FA $ AAMXXZ)

错误发生了大约3次以上 这是代码

    void mysqltest(){    
        try {    
  sql::Driver *driver;    
  sql::Connection *con;    
  sql::Statement *stmt;    
  sql::ResultSet *res;    
  sql::PreparedStatement *pstmt;    

  /* Create a connection */    
  driver = get_driver_instance();    
  con = driver->connect("tcp://127.0.0.1:3306", "root", "");    
  /* Connect to the MySQL test database */    
  con->setSchema("awesome");    

  stmt = con->createStatement();    
  stmt->execute("DROP TABLE IF EXISTS test");    
  stmt->execute("CREATE TABLE test(id INT)");    
  delete stmt;    

  /* '?' is the supported placeholder syntax */    
  pstmt = con->prepareStatement("INSERT INTO test(id) VALUES (?)");    
  for (int i = 1; i <= 10; i++) {    
    pstmt->setInt(1, i);    
    pstmt->executeUpdate();    
  }    
  delete pstmt;    

  /* Select in ascending order */    
  pstmt = con->prepareStatement("SELECT id FROM test ORDER BY id ASC");    
  res = pstmt->executeQuery();    

  /* Fetch in reverse = descending order! */    
  res->afterLast();    
  while (res->previous())    
  delete res;    

 delete pstmt;    
  delete con;    

}     
 catch (sql::SQLException &e) {    
}    
    }    

感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:0)

前三个错误是指无法找到的destructor。这就是LNK2028所说的:

"exported_function" (decorated_name) referenced in function 
"function_containing_function_call" (decorated_name)

尝试将本机函数导入纯图像时,请记住本机编辑和纯编辑之间的隐式调用约定不同

LNK2001

unresolved external symbol "symbol"

代码引用链接器在库和目标文件中找不到的东西(例如函数,变量或标签)。

- &GT;你为这个类实现了一个析构函数吗?

最后LNK2019说什么

unresolved external symbol 'symbol' referenced in function 'function'

在函数中找到未定义的外部符号(符号)。要解决此错误,请提供符号的定义或删除引用它的代码。

我的猜测是,你的析构函数丢失了。请参阅链接以供参考。