Как написать Dll для использования в VBA (MS Access 2003) - C#
Формулировка задачи:
Добрый день!
По статье сделал Dll:
Выложил dll-ку поближе - на С:
В MSAccess пишу объявление:
обернул в метод класса "API":
и вызов:
при вызове выдаёт ошибку: Не найдена точка входа в dll для метода GetData
Что сделано не так?
Работает!
А в VB - нет. Почему?
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; } } }
Declare Function GetData Lib "C:\CloudData.dll" (s As String) As String
Function GetNum(id As String) As String GetNum = GetData(id) End Function
Dim a As New API MsgBox a.GetNum("AA")
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(); } } }
Решение задачи: «Как написать Dll для использования в VBA (MS Access 2003)»
textual
Листинг программы
[assembly: ComVisible(true)]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д