My DriverFunctionTests.cpp has the following:
extern "C" __declspec(dllexport) void __stdcall InitDriver( unsigned short uChannel )
{
pclDriver = new ClDriverWrap( uChannel );
}
My DataWrapper.cs has these:
[DllImport("DriverLibrary.dll")]
public static extern void InitDriver( ushort uChannel );
[DllImport("DriverLibrary.dll")]
public static extern void ResetDriver();
[DllImport("DriverLibrary.dll")]
public static extern bool IsDriverLoaded( ushort uChannel, [In(),arshalAs(UnmanagedType.LPArray)] byte [] strMessage );
And my DriverTester.cs has:
static void Main()
{
try
{
Application.Run(new Driver_Tester());
}
catch( Exception ex )
{
MessageBox.Show( "Driver_Tester.Main(): " + ex.Message );
}
}
private void Driver_Tester_Load(object sender, System.EventArgs e)
{
ClDataWrapper.InitDriver(0);
}
To compile the whole solution in .NET, I put DriverFunctionTests.cpp in the project DriverLibrary, and I put DataWrapper.cs and DriverTester.cs in anther project DriverTester. After compiling, I copy and paste the DriverLibrary.dll to the Debug folder of the project DriverTester.
If I compile this solution in .NET, the code works great. However, if I compile DriverFunctionTests.cpp in Visual Studio 6.0, copy and paste the dll file, then the C# code throws the exception saying "Unable to load the DriverLibrary.dll".
Appreciate your help.