C ++帮助.接口指针.错误 [英] C++ help. Interface pointer. Error

查看:92
本文介绍了C ++帮助.接口指针.错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码

I have the following code

#include "stdafx.h"
#include "tchar.h"
#include <cstdio>
// Import the type library.
#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[])
{
    // Initialize COM.
    HRESULT hr = CoInitialize(NULL);
    IpcbCOMVisibleLibraryPtr pITest(__uuidof(pcbCOMVisibleLibrary));
	bool lResult = false;
	pITest->Post("testingC", "testingC", lResult);
	wprintf(L"The result is %d\n", lResult);
    // Uninitialize COM.
    CoUninitialize();
	std::getchar(); 
    return 0;
}


由于某些原因,IpcbCOMVisibleLibraryPtr表示未定义.

这是我在C#中的界面


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();

     //Default Constructor;
     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();
     }
 }

推荐答案

您的接口类实现可能应该包含在您的命名空间中.
Your interface class implementation should probably be contained within your namespace.


这篇关于C ++帮助.接口指针.错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆