Websphere MQ C++客户端在VS2013-库/链接器问题中崩溃了?

del*_*ine 3 dll winapi visual-studio-2013 ibm-mq

我刚刚从VS2010将项目升级到VS2013,现在只要我通过MQ发送消息就会崩溃,但它在VS2010下工作正常.

我怀疑它与VS2013有关,所以我构建了MQ附带的一个演示应用程序 - imqwrld.cpp这是一个简单的"hello world"应用程序.

仅此代码足以使调试运行时库抛出异常:

 #include <imqi.hpp> // WebSphere MQ C++
 int main ( int argc, char * * argv ) {

    ImqQueue * p = new ImqQueue();
    delete p;
    return 0
 }
Run Code Online (Sandbox Code Playgroud)

当删除ImqObject时,crtl检测到内存损坏.

我怀疑这是因为DLL地狱.MQ dll依赖于msvcr80.dll,我的程序使用不同版本的库--msvcr120d.dll.

关于如何解决这个问题的任何建议?我正在使用MQ客户端7

小智 5

它是当前版本(最多并包括7.5)错误/限制 - MQ生成其C++库的编译器,而Visual Studio 2012+编译器显然是二进制不兼容的.除了使用C或.NET API之外,您无法解决或解决此问题,具体取决于您要执行的操作...

正如@John M Gant在下面评论的那样,是IBM的官方支持页面.顺便说一句,看起来VS2012中的C++ 支持 MQ Series 8.0