The Origin Dialog Project Template (odialog.awx) is only compatible with Visual Studio 6. This article will walk you through the steps necessary to make a resource-only DLL using Visual Studio 2008, 2010, 2012 and 2015 Community. It will then show you how to use your DLL in Origin C.
Here is an example of how to build a resource-only DLL that is accessible in Origin C. After following these steps you will have a Visual Studio solution for building a 32-bit DLL. The next section will then show you how to add 64-bit support to your solution.
When you build 32-bit DLLs, Visual Studio creates the DLLs in the Debug and Release sub folders of your Visual Studio's project folder.
The above steps will create a 32-bit resource-only DLL. The following steps will show you how to create a 64-bit resource-only DLL by adding an x64 (64-bit) configuration to your Visual Studio project.
Now you can switch between making a 32-bit (Win32) and a 64-bit (x64) DLL using the "Solutions Platform" setting in the toolbar.
When you build 32-bit DLLs, Visual Studio creates the DLLs in the Debug and Release sub folders of your Visual Studio's project folder. For 64-bit DLLs, they will be created in the x64\Debug and x64\Release sub folders of your Visual Studio's project folder.
Now that you have created a resource-only DLL using the steps above, we will show you how to use the DLL in Origin C.
The first step is to copy the DLL and the resource header file to the Origin C sub folder in your User Files folder.
As noted above, Visual Studio creates the 32-bit DLLs in the Debug and Release sub folders of your Visual Studio's project folder and the 64-bit DLLs are created in the x64\Debug and x64\Release sub folders.
The default name of the resource header file is resource.h and it is located in a sub folder with the same name as your Visual Studio's project folder. For example, the Welcome project we created above is in a folder named Welcome. That folder contains a sub folder also named Welcome.
The resource header file in this case is: .\Welcome\Welcome\resource.h
Later versions of Visual Studio will create this header file with unicode encoding. Origin C can not read this encoding so you can not simply copy the file to your Origin C folder. Instead, you need to convert the file from unicode to ANSI.
At this point you should have created your DLL and copied it and it's resource header file to the Origin C sub folder in your User Files folder. Now we will write the Origin C code that will display the dialog and handle events.
#include <Dialog.h> #include "resource.h" class MyDialog : public Dialog { public: MyDialog() : Dialog(IDD_DIALOG1, "Welcome") { } int DoModal(HWND hParent = NULL) { InitMsgMap(); int nRet = Dialog::DoModal(hParent); return nRet; } protected: EVENTS_BEGIN ON_INIT(OnInitDialog) ON_OK(OnOK) ON_CANCEL(OnCancel) EVENTS_END BOOL OnInitDialog() { this->Text = "Welcome"; m_editCtrl = GetItem(IDC_EDIT1); m_editCtrl.Text = "Enter a message here."; return TRUE; } BOOL OnOK() { MessageBox(GetSafeHwnd(), m_editCtrl.Text, this->Text); return TRUE; } BOOL OnCancel() { return TRUE; } Edit m_editCtrl; }; bool DoMyDialog() { MyDialog myDlg; myDlg.DoModal( GetWindow() ); return true; }