Я пытаюсь создать DLL на C # для Windows Mobile, и у меня возникает ошибка при попытке доступа к DLL в VC ++.Можно ли создать DLL в C # и получить доступ к ней в VC ++, используя Windows Mobile?Я использую Windows Mobile 6 SDK.Следующий код очень хорошо работает в Desktop.
Код C #:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace HttpLibrary
{
[ComVisible(true)]
[StructLayout(LayoutKind.Sequential)]
public struct StorageGroup
{
public int count;
public string[] Name;
public string[] sgdName;
public string[] logfolder;
public string[] systemfolder;
}
[ComVisible(true)]
public struct MyResult
{
public string Name;
}
[ComVisible(true)]
[Guid("F55EDB71-E3FC-4FC2-A25B-6E09C49B3E93")]
public interface IMyClass1
{
int helloWorld();
StorageGroup getStorageGroup();
}
[ClassInterface(ClassInterfaceType.None)]
[Guid("7B0D798D-DD45-41E1-A0D4-2FC453B36CED")]
[ComVisible(true)]
public class Class1 : IMyClass1
{
public Class1()
{
//constructor.. create object..
}
public int helloWorld()
{
//dont do anything just return 10 so that client can get
the return value..
return 10;
}
public MyResult helloWorld(int i)
{
MyResult result = new MyResult();
result.Name = "jigar";
return result;
}
public StorageGroup getStorageGroup()
{
//Put code here..
StorageGroup sg = new StorageGroup();
int count = 3;
sg.Name = new string[count];
sg.sgdName = new string[count];
sg.logfolder = new string[count];
sg.systemfolder = new string[count];
sg.count = count;
for (int i = 0; i
<p>The C++ code: </p>
#import "c:\\pocket\\HTTP_POST_CS\\HttpLibrary\\HttpLibrary\\bin\\Debug
\\HttpLibrary.tlb"
BOOL CHttpLibraryTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this
automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CoInitializeEx(NULL, 0);
HttpLibrary::IMyClass1Ptr pIMyClass1(__uuidof(HttpLibrary::Class1));
--->This line gives me a Raise Exception
int i=-1;
i = (int)pIMyClass1->helloWorld();
return TRUE; // return TRUE unless you set the focus to a control
}