无法从x64项目中包含和调用预写的WIN32项目

时间:2019-06-28 08:26:36

标签: c++ visual-studio matlab

首先,我想说我对c ++和Visual Studio还是很陌生,但是我希望我能从你们那里得到一些帮助。

在我当前的论文项目中,为我提供了Microsoft Visual Studio代码,该代码连接并向伺服电机发送命令,其中解决方案平台在Win32上运行。我需要开发一个计算这些值的MATLAB脚本,而不是手动输入电动机应如何旋转的值。

所以这是问题所在: 我创建了一个新的Visual Studio项目,将这些MATLAB变量作为

传递给我的新c ++项目。

https://se.mathworks.com/help/matlab/matlab_external/pass-variables-from-matlab-to-c.html

但是现在我想将这些变量传递给上述伺服电机脚本。

我认为问题出在库可能是32位的库,并且我为matlab脚本创建了x64平台,但是有什么办法可以肯定吗?将变量传递到假定为win32平台的预写脚本的最佳方法是什么?

我已经在新的“传递变量”项目中包含了伺服电动机脚本,以及预写的伺服电动机项目中包含的所有库和标头。我还包括了标头的路径并链接了库。

伺服电机代码包含这些标题

#include "stdafx.h" #include "AxisExample.h" #include "AxisExampleDlg.h" #include "afxdialogex.h"

其中AxisExample.h和AxisExample.dlg是win32项目中包含的预写头。我还包括并链接了两个库Axis.lib和mpi.lib。

尝试在x64平台上编译这些代码时遇到的错误是

1>AxisExampleDlg.obj : error LNK2019: unresolved external symbol "class CAxis * __cdecl MPI_CreateAxis(char *,enum EnumUnitType,enum EnumDriveType)" (?MPI_CreateAxis@@YAPEAVCAxis@@PEADW4EnumUnitType@@W4EnumDriveType@@@Z) referenced in function "void __cdecl dynamic initializer for 'g_RobotJ1''(void)" (??__Eg_RobotJ1@@YAXXZ)

1>AxisExampleDlg.obj : error LNK2019: unresolved external symbol "void __cdecl MPI_DestroyAxis(class CAxis *)" (?MPI_DestroyAxis@@YAXPEAVCAxis@@@Z) referenced in function "public: void __cdecl CAxisExampleDlg::OnClose(void)" (?OnClose@CAxisExampleDlg@@QEAAXXZ)

1>C:\Users\User\Documents\Master AEROSPACE Y2\SAAB - Examensarbete\Visual\Pass Variable Matlab 2 Cpp\Matlab2C_PassVar\Matlab2C_PassVar\lib\Axis.lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64'

1>C:\Users\User\Documents\Master AEROSPACE Y2\SAAB - Examensarbete\Visual\Pass Variable Matlab 2 Cpp\Matlab2C_PassVar\Matlab2C_PassVar\lib\mpi.lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64'

我该如何以最佳方式解决此问题并在脚本之间传递参数?

0 个答案:

没有答案