C++코드 파이썬에서 사용하기
조회수 1298회
C++에서 mysql 연동을 해 놓은 코드가 있는데 이걸 python에서 부를 수는 없나요.
dll로 만들어서 불러오기만 하면 해당 경로에서 모듈을 찾을 수 없다고 뜹니다.
물론, 파이썬에서 DB 접속하는 게 더 쉬운데...
이게 된다면 연동 해야 할 게 몇 개 더 있어서요...
Could not find module 'D:\MyLab\Python\STUDY\C++connect\only_select.dll'. Try using the full path with constructor syntax. 에러 문구입니다.
(다른 dll연동은 아무 문제 없이 다 됩니다. 뭐 구조체 반환부터 포인터 등등 어떤 경우에도 dll 경로 못찾는다는 말이 없었는데... mysql 연동만 하면 이러네요)
참고로 C++에 작성한 코드를 같이 올려드립니다.
#include <my_global.h>
#include <mysql.h>
#pragma comment(lib, "libmySQL.lib")
#define DB_HOST "127.0.0.1"
#define DB_USER "계정"
#define DB_PASS "비번"
#define DB_NAME "디비"
extern "C" __declspec(dllexport)
int scsc(int argc, char** argv)
{
MYSQL* connection = NULL, conn;
MYSQL_RES* sql_result;
MYSQL_ROW sql_row;
int query_stat;
mysql_init(&conn);
connection = mysql_real_connect(&conn, DB_HOST, DB_USER, DB_PASS, DB_NAME, 3306, (char*)NULL, 0);
if (connection == NULL)
{
fprintf(stderr, "Mysql connection error: %s", mysql_error(&conn));
return 1;
}
mysql_query(connection, "set session character_set_connection=euckr;");
mysql_query(connection, "set session character_set_results=euckr;");
mysql_query(connection, "set session character_set_client=euckr;");
const char* query = "SELECT * from user"; // const를 써 줘야 한다.
query_stat = mysql_query(connection, query);
if (query_stat != 0)
{
fprintf(stderr, "Mysql query error: %s", mysql_error(&conn));
return 1;
}
sql_result = mysql_store_result(connection);
while ((sql_row = mysql_fetch_row(sql_result)) != NULL)
{
printf("%2s %2s %s %s\n", sql_row[0], sql_row[1], sql_row[2], sql_row[3]);
}
mysql_free_result(sql_result);
mysql_close(connection);
return 0;
}```
댓글 입력