Не можете добавить ссылку на DLL? - PullRequest
0 голосов
/ 08 июля 2011

Следуйте до Это Я также прочитал некоторые другие вопросы, но не понимаю, что могло бы вызвать это.Права доступа?Как применить обходной путь?Whats LAME?

Я был направлен на ЭТОЕ учебное пособие и превратил его в программу C # для выполнения при нажатии кнопок.

Однако в этой строке появляется ошибка

[DllImport("ODBCCP32.dll")]

с указанием

The type or namespace name "DllImport" could not be found (are you missing a using directory or an assembly reference?)

Я попытался импортировать этот файл в качестве справочного, но затем получил сообщение об ошибке

"Please make sure file is accessile, and that it is a valid assembly or COM component"

Я что-то пропустилимпортирован?Вот часть моего кода.

using System;
using System.Runtime.InteropServices;

namespace DsnUtil{
public partial class Form1 : Form{
[DllImport("ODBCCP32.dll")]
private static extern bool SQLConfigDataSource(//etc etc)
public Form1(){
   button1_Click();
}

private void button1_Click(object sender, EventArgs e){
   //DoesWork
}
}

1 Ответ

0 голосов
/ 11 июля 2011

Мне показалось, что некоторые вещи перепутаны. Я смог добавить .dll в качестве ресурса вместо ссылки. Я также назначил новый строковый ресурс в качестве имени библиотеки DLL на случай, если захочу использовать его позже.

В целом это то, что сработало.

namespace DSNUtility{

public partial class Form1 : Form{
[DllImport("odbccp32.dll")]
private static extern bool SQLConfigDataSource(IntPrt parent, int request, string driver, string attribute;

public form(){
InitializeComponent();
}

//Method to handle the creation(Will be called on a Button Click)
public bool AddUserDSN(){
return SQLConfigDataSource((IntPrt)0, 1, "SQL Server",
"DSN=Testing123\0Description=Testing123\0Network=blahblah\0Trusted_Connection=No\0Server=blahblahblah\0Database=XXXXXX\0");
}

private void Form1_Load(object sender, EventArgs e){
    }

private void button1_Click(object sender, EventArgs e){
//Call the Add User Method   
AddUserDSN();
}   
}
...