我想用我的main()
函數中的下列代碼連接到mysql數據庫。有趣的代碼行爲
MYSQL *connect = mysql_init(NULL);
它工作正常,我得到一個返回的指針值。
我已創建的另一個C++文件與在它的函數,如下面
int Newl_connection(FileHandler& pProcLog)
{
MYSQL *connect = mysql_init(NULL);
return 0;
}
編譯和連接細,我已經多次打電話給在主函數的同一行的代碼(作爲測試)和一切正常,但是當我運行代碼時,它在Newl_connection()函數的行中失敗。
我已將Newl_connection剝離爲儘可能基本,並將包含Main()的文件中的所有標題包含到包含Newl_connection()函數的文件中。
編譯器錯誤我收到是
程序接收到的信號SIGABRT,中止。 0x00007ffff6bc6428 in __GI_raise(sig = sig @ entry = 6)at ../sysdeps/unix/sysv/linux/raise.c:54 54 ../sysdeps/unix/sysv/linux/raise.c:沒有這樣的文件或目錄。
嘗試將類型名稱用作表達式。
嘗試使用類型名稱作爲表達
嘗試使用類型名稱作爲表達。對於所有實例調用都會顯示,但Newl_connection()
函數中的調用是終端。
我試着刪除main()
中的所有其他實例,但仍然遇到同樣的問題。
爲什麼代碼應該在一個地方工作,但在另一個地方行爲不同? 幫助將不勝感激我在這一個我的智慧結束。
我猜這個問題是由於不正確的包括頭文件?但是,用一個最小的,完整的例子很難說。 –
當你調用這個函數時,你會傳遞一個有效的'FileHandler'對象嗎? –
_「爲什麼代碼在一個地方工作,但在另一個地方的行爲不同?」_許多原因。出示您的[MCVE]。 –