I have the following code
#include "stdafx.h"
#include "tchar.h"
#include <cstdio>
#import "C:\Users\sl9400\Documents\Visual Studio 2010\Projects\ProgramCommunicationBridge\CnsServiceLibrary\bin\Debug\CnsServiceLibrary.tlb" raw_interfaces_only
using namespace CnsServiceLibrary;
int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL);
IpcbCOMVisibleLibraryPtr pITest(__uuidof(pcbCOMVisibleLibrary));
bool lResult = false;
pITest->Post("testingC", "testingC", lResult);
wprintf(L"The result is %d\n", lResult);
CoUninitialize();
std::getchar();
return 0;
}
for some reason IpcbCOMVisibleLibraryPtr says it is undefined.
Here is my interface in C#
namespace CnsServiceLibrary
{
[ComVisible(true)]
interface IpcbCOMVisibleLibrary
{
Boolean Post(string name, string message);
string Read(string name);
void Initialize(string name);
void ResetAllInfo();
}
}
Here is my implementation of my class.
[ComVisible(true)]
public class pcbCOMVisibleLibrary : IpcbCOMVisibleLibrary
{
public string URL
{
get
{
return cnsSvc.Url;
}
set
{
cnsSvc.Url = value;
}
}
public CnsService.Service1 cnsSvc = new CnsService.Service1();
public pcbCOMVisibleLibrary()
{
this.URL = Properties.Settings.Default.CnsServiceLibrary_CnsService_Service1;
}
public Boolean Post(string name, string message)
{
return cnsSvc.Post(name, message);
}
public string Read(string name)
{
return cnsSvc.Read(name);
}
public void Initialize(string name)
{
cnsSvc.Initialize(name);
}
public void ResetAllInfo()
{
cnsSvc.ResetAllInfo();
}
}