T O P I C R E V I E W |
shafei |
Posted - 01/21/2012 : 07:26:54 AM Hi, The problem is that I am trying to convert some of my codes from C++ to DLL so they run faster. To do this I started learning how to create DLL files (using VS 2010) and then implement them in Origin C. Unfortunately I get an error that I brought in the subject. The problem is that I am doubtful if it is the problem with the DLL file that I generate using VS or there are something about Origin that I need to figure out! I started with extremely simple code:
#include "stdafx.h" //This header was included in the file VS //generated
int multiple(int t) { int i; i = 2 * t; return i; }
Then I made a dll file with help of some videos online (http://www.youtube.com/watch?v=I0uGEJKcyik), generated separate header file using this link: http://www.originlab.com/www/support/resultstech.aspx?language=english&ID=997
and then wrote a simple code in Origin to run the dll file. #include <Origin.h> #include "C:\Creator\lastTest\lastTest\lastTest.h"
int MyDLLTest() { int k; int j; j =2; k = multiple (2); return k; }
Unfortunately I constantly get this error that external DLL cannot find function ..... multiple. I would really appreciate your help. Thanks |
5 L A T E S T R E P L I E S (Newest First) |
shafei |
Posted - 01/25/2012 : 6:42:20 PM I actually solved my problem! Instead of using VC directly to generate a dll file, I used the one that Origin has already prepared for fitting functions. I made the required changes, and tried it for a simple function. It worked. Origin has also several pages explaining how to call and use dll. Do as it is said in the file. Some of the links are: http://ocwiki.originlab.com/index.php?title=Category:Access_an_External_DLL
http://ocwiki.originlab.com/index.php?title=OriginC:Calling_External_DLLs
http://www.originlab.com/www/support/resultstech.aspx?language=english&ID=997
In particular, I found the third link very useful. |
shafei |
Posted - 01/23/2012 : 5:41:17 PM I only have three .cpp files in the "source files" folder. That's what VC automatically generate! |
eparent |
Posted - 01/23/2012 : 3:55:47 PM In VC, under Source Files, you should see a .def file listed. Open this file and under EXPORTS add the names of the functions you want to export.
quote: Originally posted by shafei
I create DLL file in VC 2010, and I do not see any folder named export. I have "External dependencies", "Header Files", "Resource Files", and "Source Files" folders in VC project.
|
shafei |
Posted - 01/23/2012 : 3:43:49 PM I create DLL file in VC 2010, and I do not see any folder named export. I have "External dependencies", "Header Files", "Resource Files", and "Source Files" folders in VC project.
|
eparent |
Posted - 01/23/2012 : 3:26:01 PM You need to export your function. Did you add the function name to your .def file? It should be listed under EXPORTS.
Example .def file:
LIBRARY
EXPORTS
multiple
|