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;
}```
  • extern "C" 선언해서 dll을 생성하세요 정영훈 2020.3.31 17:49
  • mysql 드라이버 로직 빼고는 되세요? 못찾는 것이 mysql 관련 라이브러리일 수 있습니다. 정영훈 2020.3.31 19:51
  • 다른 것은 된다고 하셨네요...그럼 답이 나오네요. mysql 관련 dll을 함께 배포하세요. 정영훈 2020.3.31 19:52
  • 네! 시도해보겠습니다. 답변 감사합니다!. 반시 2020.4.1 09:05
  • 되옵니다~ 정영훈님 감사합니다. (C++에서도 dll을 못 찾는다는 에러가 계속 떴었어서 같이 넣었는데.. 파이썬에서도 그런거였군요) 반시 2020.4.1 10:09

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)