Como: Criar e usar DLLs translation from VPE for Csharp (guia de programação translation from VPE for Csharp)
Uma biblioteca de vinculação dinâmica (DLL) está vinculada a seu programa em time de execução.Para demonstrar compilar e usar uma DLL, considere o seguinte cenário:
MathLibrary.DLL: O arquivo de biblioteca que contém os métodos sejam chamados em time de execução. Neste exemplo, a DLL contém dois métodos, Add e Multiply.
Add.cs: O arquivo de fonte que contém o método Add(long i, long j). Ele retorna a soma de seus parâmetros.A classe AddClass que contém o método Add é um membro do namespace UtilityMethods.
Mult.cs: O código-fonte que contém o método Multiply(long x, long y). Ele retorna o produto de seus parâmetros.A classe MultiplyClass que contém o método Multiply também é membro do espaço para nome UtilityMethods.
TestCode.cs: O arquivo que contém o Main método. Ele usa os métodos no arquivo de DLL para calcular a soma e o produto dos argumentos de time de execução.
Exemplo
// File: Add.cs
namespace UtilityMethods
{
public class AddClass
{
public static long Add(long i, long j)
{
return (i + j);
}
}
}
// File: Mult.cs
namespace UtilityMethods
{
public class MultiplyClass
{
public static long Multiply(long x, long y)
{
return (x * y);
}
}
}
// File: TestCode.cs
using UtilityMethods;
class TestCode
{
static void Main(string[] args)
{
System.Console.WriteLine("Calling methods from MathLibrary.DLL:");
if (args.Length != 2)
{
System.Console.WriteLine("Usage: TestCode <num1> <num2>");
return;
}
long num1 = long.Parse(args[0]);
long num2 = long.Parse(args[1]);
long sum = AddClass.Add(num1, num2);
long product = MultiplyClass.Multiply(num1, num2);
System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
}
}
/* Output (assuming 1234 and 5678 are entered as command line args):
Calling methods from MathLibrary.DLL:
1234 + 5678 = 6912
1234 * 5678 = 7006652
*/
Este arquivo contém o algoritmo que usa os métodos DLL, Add e Multiply. Ele começa com a analisar os argumentos inseridos a partir da linha de comando, num1 e num2. Calcula a soma usando o Add método na AddClass classe e o produto usando o Multiply método na MultiplyClass classe.
Observe que o using diretiva no início do arquivo permite que você use sistema autônomo nomes de classe não qualificado para fazer referência a métodos DLL em time de compilar, da seguinte maneira:
MultiplyClass.Multiply(num1, num2);
Caso contrário, você terá que usar nomes totalmente qualificados, sistema autônomo segue:
UtilityMethods.MultiplyClass.Multiply(num1, num2);
Execução
Para executar o programa, digite o nome do arquivo EXE, seguido de dois números, da seguinte maneira:
TestCode 1234 5678
Compilando o código
Para compilação o arquivo MathLibrary.DLL, compilar os dois arquivos Add.cs e Mult.cs usando a seguinte linha de comando:
csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs
The /destino:biblioteca opção do compilador informa o compilador para produzir saída de uma DLL em vez de um arquivo EXE.The /outopção do compilador seguida por um nome de arquivo é usada para especificar o nome do arquivo DLL.Caso contrário, o compilador usa o primeiro arquivo (Add.cs) sistema autônomo o nome da DLL.
Para compilação o arquivo executável, TestCode.exe, use a seguinte linha de comando:
csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs
The /out opção do compilador informa o compilador para produzir saída de um arquivo EXE e especifica o nome no (arquivo de saídaTestCode.exe). Esta opção do compilador é opcional.The /Referenceopção do compilador Especifica o arquivo DLL ou arquivos que usa este programa.
Consulte também
Tarefas
Como: Especificar um endereço base para uma DLL