В VBA, C # dll говорит, что нет точки входа - PullRequest
0 голосов
/ 08 февраля 2019

Я просмотрел другие посты и не смог найти решение.

Я пытаюсь использовать C # dll, созданный в коде VBA, без добавления ссылки.

В моем коде VBA, Я объявил:

Public Declare Function message Lib "path_to_my_dll" _
 (ByVal message As String) As String


Sub Test()

Dim hello As String

    hello = message("hi!!")
    Debug.Print hello

End Sub

Я получаю сообщение об ошибке, говорящее, что точка входа для моей dll не найдена.

Код C #:

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace DLLImport
{
    public class Class1
    {
        [DllImport("DLLImport", EntryPoint = "Run")]
        extern string Run(string message)
        {
            return message;
        }
    }
}

Спасибозаранее за вашу помощь !!

1 Ответ

0 голосов
/ 08 февраля 2019

Возможно, вы захотите использовать InteropServices для создания видимой библиотеки DLL COM

using System.Runtime.InteropServices;   

[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("your-GUID-1")]
public interface _Visible_Methods
{
    //--------< _Visible_Methods >--------

    //*visible COM Methods of this Control under Office,Excel, Word

    string get_Hello();

    //--------</ _Visible_Methods >--------
}

Источник: https://codedocu.com/Net-Framework/Controls/COM-ActiveX/Create-C_hash_-COM-Control-for-Office?2382

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...