<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265306</link>
    <title>MATLAB Central Newsreader - Matlab C++ Interface</title>
    <description>Feed for thread: Matlab C++ Interface</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Sun, 08 Nov 2009 18:57:01 -0500</pubDate>
      <title>Matlab C++ Interface</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265306#693054</link>
      <author>sadel </author>
      <description>Hi all!&lt;br&gt;
I use this version of Microsoft Visual C++ Express Edition&lt;br&gt;
Microsoft Visual Studio 2005&lt;br&gt;
Version 8.0.50727.867  &lt;br&gt;
Microsoft .NET Framework&lt;br&gt;
Version 2.0.50727 SP2&lt;br&gt;
Installed Edition: VC Express&lt;br&gt;
I use this version of Matlab:&lt;br&gt;
MATLAB Version 7.8.0.347 (R2009a)&lt;br&gt;
and i use this operating System: Microsoft Windows Vista Version 6.0 (Build 6001: Service Pack 1) Home premium&lt;br&gt;
&lt;br&gt;
&amp;nbsp;I am trying to compile 'engwindemo.cpp' example  but i take this error message:&lt;br&gt;
&lt;br&gt;
1&amp;gt;Compiling...&lt;br&gt;
1&amp;gt;win.cpp&lt;br&gt;
1&amp;gt;.\win.cpp(39) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
1&amp;gt;.\win.cpp(104) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
1&amp;gt;.\win.cpp(113) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
1&amp;gt;.\win.cpp(122) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
&lt;br&gt;
Can anyone help me?&lt;br&gt;
&lt;br&gt;
Thank you in advance!</description>
    </item>
    <item>
      <pubDate>Mon, 09 Nov 2009 10:30:04 -0500</pubDate>
      <title>Re: Matlab C++ Interface</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265306#693172</link>
      <author>sadel </author>
      <description>&quot;sadel &quot; &amp;lt;sadel2006@yahoo.gr&amp;gt; wrote in message &amp;lt;hd749t$fqk$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; Hi all!&lt;br&gt;
&amp;gt; I use this version of Microsoft Visual C++ Express Edition&lt;br&gt;
&amp;gt; Microsoft Visual Studio 2005&lt;br&gt;
&amp;gt; Version 8.0.50727.867  &lt;br&gt;
&amp;gt; Microsoft .NET Framework&lt;br&gt;
&amp;gt; Version 2.0.50727 SP2&lt;br&gt;
&amp;gt; Installed Edition: VC Express&lt;br&gt;
&amp;gt; I use this version of Matlab:&lt;br&gt;
&amp;gt; MATLAB Version 7.8.0.347 (R2009a)&lt;br&gt;
&amp;gt; and i use this operating System: Microsoft Windows Vista Version 6.0 (Build 6001: Service Pack 1) Home premium&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt;  I am trying to compile 'engwindemo.cpp' example  but i take this error message:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; 1&amp;gt;Compiling...&lt;br&gt;
&amp;gt; 1&amp;gt;win.cpp&lt;br&gt;
&amp;gt; 1&amp;gt;.\win.cpp(39) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
&amp;gt; 1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
&amp;gt; 1&amp;gt;.\win.cpp(104) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
&amp;gt; 1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
&amp;gt; 1&amp;gt;.\win.cpp(113) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
&amp;gt; 1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
&amp;gt; 1&amp;gt;.\win.cpp(122) : error C2664: 'MessageBox' : cannot convert parameter 2 from 'LPSTR' to 'LPCTSTR'&lt;br&gt;
&amp;gt; 1&amp;gt;        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Can anyone help me?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Thank you in advance!&lt;br&gt;
&lt;br&gt;
The code is:&lt;br&gt;
&lt;br&gt;
/*&lt;br&gt;
&amp;nbsp;*	engwindemo.c&lt;br&gt;
&amp;nbsp;*&lt;br&gt;
&amp;nbsp;*	This is a simple program that illustrates how to call the MATLAB&lt;br&gt;
&amp;nbsp;*	Engine functions from a C program for windows&lt;br&gt;
&amp;nbsp;*&lt;br&gt;
&amp;nbsp;* Copyright 1984-2003 The MathWorks, Inc.&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
/* $Revision: 1.10.4.1 $ */&lt;br&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;
#include &amp;lt;string.h&amp;gt;&lt;br&gt;
#include &quot;engine.h&quot;&lt;br&gt;
#pragma comment (lib,&quot;libmx.lib&quot;)&lt;br&gt;
#pragma comment (lib,&quot;libut.lib&quot;)&lt;br&gt;
#pragma comment (lib,&quot;libeng.lib&quot;)&lt;br&gt;
#define BUFSIZE 256&lt;br&gt;
&lt;br&gt;
static double Areal[6] = { 1, 2, 3, 4, 5, 6 };&lt;br&gt;
&lt;br&gt;
int PASCAL WinMain (HINSTANCE hInstance,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HINSTANCE hPrevInstance,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPSTR     lpszCmdLine,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int       nCmdShow)&lt;br&gt;
&lt;br&gt;
{&lt;br&gt;
	Engine *ep;&lt;br&gt;
	mxArray *T = NULL, *a = NULL, *d = NULL;&lt;br&gt;
	char buffer[BUFSIZE+1];&lt;br&gt;
	double *Dreal, *Dimag;&lt;br&gt;
	double time[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };&lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * Start the MATLAB engine &lt;br&gt;
	 */&lt;br&gt;
	if (!(ep = engOpen(NULL))) {&lt;br&gt;
		MessageBox ((HWND)NULL, (LPSTR)&quot;Can't start MATLAB engine&quot;, &lt;br&gt;
			(LPSTR) &quot;Engwindemo.c&quot;, MB_OK);&lt;br&gt;
		exit(-1);&lt;br&gt;
	}&lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * PART I&lt;br&gt;
	 *&lt;br&gt;
	 * For the first half of this demonstration, we will send data&lt;br&gt;
	 * to MATLAB, analyze the data, and plot the result.&lt;br&gt;
	 */&lt;br&gt;
&lt;br&gt;
	/* &lt;br&gt;
	 * Create a variable from our data&lt;br&gt;
	 */&lt;br&gt;
	T = mxCreateDoubleMatrix(1, 10, mxREAL);&lt;br&gt;
	memcpy((char *) mxGetPr(T), (char *) time, 10*sizeof(double));&lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * Place the variable T into the MATLAB workspace&lt;br&gt;
	 */&lt;br&gt;
	engPutVariable(ep, &quot;T&quot;, T);&lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * Evaluate a function of time, distance = (1/2)g.*t.^2&lt;br&gt;
	 * (g is the acceleration due to gravity)&lt;br&gt;
	 */&lt;br&gt;
	engEvalString(ep, &quot;D = .5.*(-9.8).*T.^2;&quot;);&lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * Plot the result&lt;br&gt;
	 */&lt;br&gt;
	engEvalString(ep, &quot;plot(T,D);&quot;);&lt;br&gt;
	engEvalString(ep, &quot;title('Position vs. Time for a falling object');&quot;);&lt;br&gt;
	engEvalString(ep, &quot;xlabel('Time (seconds)');&quot;);&lt;br&gt;
	engEvalString(ep, &quot;ylabel('Position (meters)');&quot;);&lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * PART II&lt;br&gt;
	 *&lt;br&gt;
	 * For the second half of this demonstration, we will create another mxArray&lt;br&gt;
	 * put it into MATLAB and calculate its eigen values &lt;br&gt;
	 * &lt;br&gt;
	 */&lt;br&gt;
	  &lt;br&gt;
	 a = mxCreateDoubleMatrix(3, 2, mxREAL);         &lt;br&gt;
	 memcpy((char *) mxGetPr(a), (char *) Areal, 6*sizeof(double));&lt;br&gt;
	 engPutVariable(ep, &quot;A&quot;, a); &lt;br&gt;
&lt;br&gt;
	 /*&lt;br&gt;
	 * Calculate the eigen value&lt;br&gt;
	 */&lt;br&gt;
	 engEvalString(ep, &quot;d = eig(A*A')&quot;);&lt;br&gt;
&lt;br&gt;
	 /*&lt;br&gt;
	 * Use engOutputBuffer to capture MATLAB output. Ensure first that&lt;br&gt;
	 * the buffer is always NULL terminated.&lt;br&gt;
	 */&lt;br&gt;
	 buffer[BUFSIZE] = '\0';&lt;br&gt;
	 engOutputBuffer(ep, buffer, BUFSIZE);&lt;br&gt;
&lt;br&gt;
	 /*&lt;br&gt;
	 * the evaluate string returns the result into the&lt;br&gt;
	 * output buffer.&lt;br&gt;
	 */&lt;br&gt;
	 engEvalString(ep, &quot;whos&quot;);&lt;br&gt;
	 MessageBox ((HWND)NULL, (LPSTR)buffer, (LPSTR) &quot;MATLAB - whos&quot;, MB_OK);&lt;br&gt;
	&lt;br&gt;
	 /*&lt;br&gt;
	 * Get the eigen value mxArray&lt;br&gt;
	 */&lt;br&gt;
	 d = engGetVariable(ep, &quot;d&quot;);&lt;br&gt;
	 engClose(ep);&lt;br&gt;
&lt;br&gt;
	 if (d == NULL) {&lt;br&gt;
			MessageBox ((HWND)NULL, (LPSTR)&quot;Get Array Failed&quot;, (LPSTR)&quot;Engwindemo.c&quot;, MB_OK);&lt;br&gt;
		}&lt;br&gt;
	else {		&lt;br&gt;
		Dreal = mxGetPr(d);&lt;br&gt;
		Dimag = mxGetPi(d);      		&lt;br&gt;
		if (Dimag)&lt;br&gt;
			sprintf(buffer,&quot;Eigenval 2: %g+%gi&quot;,Dreal[1],Dimag[1]);&lt;br&gt;
		else&lt;br&gt;
			sprintf(buffer,&quot;Eigenval 2: %g&quot;,Dreal[1]);&lt;br&gt;
		MessageBox ((HWND)NULL, (LPSTR)buffer, (LPSTR)&quot;Engwindemo.c&quot;, MB_OK);&lt;br&gt;
	    mxDestroyArray(d);&lt;br&gt;
	} &lt;br&gt;
&lt;br&gt;
	/*&lt;br&gt;
	 * We're done! Free memory, close MATLAB engine and exit.&lt;br&gt;
	 */&lt;br&gt;
	mxDestroyArray(T);&lt;br&gt;
	mxDestroyArray(a);&lt;br&gt;
	&lt;br&gt;
	return(0);&lt;br&gt;
}</description>
    </item>
  </channel>
</rss>

