既然有异常,你没有用try, catch吗?

解决方案 »

  1.   

    已经试过,没用,程序直接崩溃掉,根本不会跳到catch中去
      

  2.   

    debug, release版本不匹配吧.
    你在release模式下编译执行吧.
      

  3.   

    首先非常感谢iihero的回复。在debug,release版本下用try catch都试过了,还是同样的问题
      

  4.   

    hi,
    你用的是1.1.3,似乎编译时需要boost库。
    为减少不必要的麻烦,你可以尝试使用1.0.x的老版本。
    同时,链接时使用libmysql.dll的release版本.
    配置时使用release的config,
    再编译链接试试。
    使用vs2005或者vs2008,都应该能工作。我以前之所以推荐大家直接使用C-API,就是因为C++的库很容易引起这类错误。而C-API在各编译器下边运行的则非常好。只是自己需要手动包装一下。
      

  5.   


    我的经验是,下载到c++ connector之后,第一步仔细看看INSTALL, 以及readme的提示,看看它对编译器版本(比如vs2005, vs2008而不是vc6)的要求,以及第三方库的要求(比如boost)
    然后,因为它要依赖于libmysql.dll/libmysql.lib,你得到的通常是release版本的这个dll.
    所以,你编译的时候,就选择release下的config, 一样可以带debug信息编译。写一个简单的测试程序验证即可。只要能运行,证明你的思路是正确的。1.1以后的connector是依赖于boost库的。所以,有些地方会不太相同。不过,基本上,都没有什么难度。所以,基本分为两类:
    1. 想一劳永逸的,就自己wrap C-API,可移植性好
    2. 想速成的,用c++ connector, 很快上手。但是经常要变。
      

  6.   

    iihero,谢谢您的建议。不过后来又在官网上找到了一些有关connector的异常处理的文档,这个问题自己已经解决了,不过我觉得用C也是一个不错的选择,可移植性好也是它的一个重要优势