Как написать Dll для использования в VBA (MS Access 2003) - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! По статье сделал Dll:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
 
//using System.Data.SqlClient;
 
namespace DBCOM_Object
{
  [Guid("694C1820-04B6-4988-928F-FD858B95C880")]
  public interface DBCOM_Interface
  {
    [DispId(1)]
    string GetData(string id);
  }
 
  // Events interface DBCOM_ObjectEvents 
  [Guid("47C976E0-C208-4740-AC42-41212D3C34F0"),
  InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
  public interface DBCOM_Events
  {
  }

  [Guid("9E5E5FB2-219D-4ee7-AB27-E4DBED8E123E"),
  ClassInterface(ClassInterfaceType.None),
  ComSourceInterfaces(typeof(DBCOM_Events))]
  public class DBCOM_Class : DBCOM_Interface
  {
    private string cs = "__";
 
    public DBCOM_Class()
    {
    }
 
    public string GetData(string id)
    {
      return cs+id;
    }
 
  }
}
Выложил dll-ку поближе - на С: В MSAccess пишу объявление:
Declare Function GetData Lib "C:\CloudData.dll" (s As String) As String
обернул в метод класса "API":
Function GetNum(id As String) As String
  GetNum = GetData(id)
End Function
и вызов:
Dim a As New API
MsgBox a.GetNum("AA")
при вызове выдаёт ошибку: Не найдена точка входа в dll для метода GetData
Can't find DLL entry point GetData in C:\CloudData.dll
Что сделано не так?
Попробовал использовать Dll в C#:
sing System;
using System.Text;
using DBCOM_Object;
 
namespace sd
{
  class Program
  {
    static void Main(string[] args)
    {
      DBCOM_Object.DBCOM_Class y = new DBCOM_Class();
    
      Console.WriteLine(y.GetData("ff"));
      Console.ReadLine();
       
    }
  }
}
Работает! А в VB - нет. Почему?

Решение задачи: «Как написать Dll для использования в VBA (MS Access 2003)»

textual
Листинг программы
[assembly: ComVisible(true)]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.429 из 5
Похожие ответы