2010-08-24 5 views
1

Мы используем внешние DLLS как:Как изменить DLLS

[DllImport("DemoExport.dll")] 
    public static extern string GetDBConnection(string sDBName); 
    [DllImport("DemoExport.dll")] 
    public static extern int CreateEmptyDBFromDB(string SourceDBName, string DestinationDBName); 
    [DllImport("DemoExport.dll")] 

Теперь мы хотим, чтобы добавить новый метод в той же схеме. ? Мы ищем, что есть какой-либо способ реализации метода в DemoExport.dll Таким образом, мы можем использовать метод сказать DemoMethod(), как:

[DllImport("DemoExport.dll")] 
    public static extern void DemoMethod(); 

Это может выглядеть как сумасшедший вопрос, но мы действительно должны реализуем этот метод, поэтому позже мы сможем использовать его.

Кроме того, если выше невозможно, то как создать новую dlls или сказать, как использовать DllExport, который недоступен в C#. Так, laterly, любой человек может использовать метод с атрибутом

[DllImport("dllname.dll")] 
publis statis extern void mymeth(); 
+1

Странный вопрос. Просто измените код для DLL. –

ответ

1

Я не уверен, что я правильно вас понял, но вы хотите добавить метод существующих DLL. Если я прав, то это невозможно. Другие варианты:

  • найти источники этой библиотеки, добавьте метод и перекомпилировать
  • Создать новую библиотеку DLL и внедрить метод там и использовать имя нового свое в DllImport
+0

спасибо за разъяснение, я отредактировал вопрос, пожалуйста, зарегистрируйтесь –

3

Вы не можете использовать C# для добавьте метод к существующей предварительно скомпилированной * .dll.

Вам нужно будет найти источник для DLL, написать свой метод, перекомпилировать и затем использовать этот новый метод с C#.

EDIT

Я все еще не уверен, что вы просите в своем обновлении. Если вы хотите написать новый метод, который может использоваться другими пользователями C#, вам не нужно ничего делать с атрибутами. Просто напишите публичный метод в открытом классе.

После этого любой пользователь .NET может добавить ссылку на сборку для вашего класса и использовать ваш метод.

Если вы хотите, чтобы любой пользователь Windows мог использовать ваш код, вы можете изучить COM Interop.

Если вы все еще пытаетесь использовать dll C/C++, то мой первоначальный ответ все еще стоит.

+0

Спасибо и извините за то, что вы плохо писали из-за того, что не смогли понять мою проблему. Позвольте мне попытаться представить то же самое: Три метода в некотором неуправляемом коде, мы используем dlls Теперь мы используем функции, указанные в моем исходном коде. Теперь я должен добавить новый метод, этот новый метод будет использовать вышеупомянутый три метода в моем проекте библиотеки классов. Это потому, что мы должны предоставить DLL этого проекта другому проекту. Что делать сейчас? –