C++与MATLAB混合编程问题, error LNK2019与fatal error LNK1112

top_along 2014-11-04 10:13:55
用dll实现混合编程时候的错误:

网上查到说是我的MATLAB是64位,要改成x64,然后修改了两个地方


网上说问题就这样解决了,但是我的情况是:

无法解决了。

另外有试使用MATLAB引擎实现混合编程,情况类似

我的环境设置是这样的:
包函目录 F:\MATLAB R2010b\extern\include\win64;F:\MATLAB R2010b\extern\include;
库目录 F:\MATLAB R2010b\extern\lib\win64\microsoft\
链接器依赖项
F:\MATLAB R2010b\extern\lib\win64\microsoft\mclmcrrt.lib
F:\MATLAB R2010b\extern\lib\win64\microsoft\libmat.lib
F:\MATLAB R2010b\extern\lib\win64\microsoft\libmx.lib
F:\MATLAB R2010b\extern\lib\win64\microsoft\libmex.lib
F:\VS2010\Projects\testsincplot_dll\testsincplot_dll\libsincplot.lib
...全文
434 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
top_along 2014-11-10
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
等楼主安度晚年的时候回想起这个帖子……
问题已解决,是我MATLAB的编译语句参数设置错误,应生成C++的dll的,结果我生成了C的dll,改过来就能通过编译和链接了。希望对大家有用。
赵4老师 2014-11-06
  • 打赏
  • 举报
回复
等楼主安度晚年的时候回想起这个帖子……
top_along 2014-11-06
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 比如: A将请求数据写到文件a.txt,写完后改名为aa.txt B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,改名为bb.txt A发现bb.txt存在时,读取其内容,读完后删除bb.txt 以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。 除非A或B不支持判断文件是否存在、文件读写和文件更名。 但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢? 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·……
感谢您的指点,这也算是一种方法吧,不过我觉得相对而言,DLL可能会更方便一点,MATLAB提供函数就OK了,不用我再去编写文件操作,也不用同时却运行两个程序,上手难度、工作量都应该会相对较小,而且替换容易。不知道我理解得对不对。 另外感觉我就是哪里的设置没有弄对,如果弄对了,以后写混编感觉难度就会小了。
赵4老师 2014-11-05
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 比如: A将请求数据写到文件a.txt,写完后改名为aa.txt B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,改名为bb.txt A发现bb.txt存在时,读取其内容,读完后删除bb.txt 以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。 除非A或B不支持判断文件是否存在、文件读写和文件更名。 但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢? 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·……

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧