C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 自作DLL


(過去ログ 34 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■17255 / inTopicNo.1)  自作DLL
  
□投稿者/ しんたろ (1回)-(2008/04/20(Sun) 09:47:05)

分類:[.NET 全般] 

はじめまして、VisualC# 2008 Exp、.NET Fream3.0を使って、自作DLLを作成し、DLLImportを使用して、プログラムを作成してましたが、
うまく、DLLを読み込んでくれないみたいなのです。
すいませんが、参考になる方法や、資料がありましたら、ご教授おねがいします。

ソリューションを用意し、二つのプロジェクトにて、ソリュージョンビルドまではやってみました。

-main.cs-(コンソールアプリ)--------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ProgramMain
{
//    using UtilityMethods;

    class Program
    {
        [DllImport("UtilityMethods.dll")]
        public static extern long Add(long i, long j);

        [DllImport("UtilityMethods.dll")]
        public static extern long Multiply(long x, long y);

        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 = Add(num1, num2);
            long product = Multiply(num1, num2);
            System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
            System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);

        }
    }
}
---------------------------------------------------------------------------

-Add.cs--(クラスライブラリのプロジェクトから作成)--------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UtilityMethods
{
    public class AddClass
    {
        public static long Add(long i, long j)
        {
            return (i + j);
        }
    }
}
---------------------------------------------------------------------------

-multi.cs--(クラスライブラリのプロジェクトにファイル追加)------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UtilityMethods
{
    class MultiplyClass
    {
        public static long Multiply(long x, long y)
        {
            return (x * y);
        }
    }
}
---------------------------------------------------------------------------

引用返信 編集キー/
■17256 / inTopicNo.2)  Re[1]: 自作DLL
□投稿者/ しんたろ (2回)-(2008/04/20(Sun) 10:14:26)
No17255 (しんたろ さん) に返信
> はじめまして、VisualC# 2008 Exp、.NET Fream3.0を使って、自作DLLを作成し、DLLImportを使用して、プログラムを作成してましたが、
> うまく、DLLを読み込んでくれないみたいなのです。
> すいませんが、参考になる方法や、資料がありましたら、ご教授おねがいします。
>
> ソリューションを用意し、二つのプロジェクトにて、ソリュージョンビルドまではやってみました。
>
> -main.cs-(コンソールアプリ)--------------------------------------------------------------------------
> using System;
> using System.Collections.Generic;
> using System.Linq;
> using System.Text;
> using System.Runtime.InteropServices;
>
> namespace ProgramMain
> {
> // using UtilityMethods;
>
> class Program
> {
> [DllImport("UtilityMethods.dll")]
> public static extern long Add(long i, long j);
>
> [DllImport("UtilityMethods.dll")]
> public static extern long Multiply(long x, long y);
>
> 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 = Add(num1, num2);
> long product = Multiply(num1, num2);
> System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
> System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
>
> }
> }
> }
> ---------------------------------------------------------------------------
>
> -Add.cs--(クラスライブラリのプロジェクトから作成)--------------------------
> using System;
> using System.Collections.Generic;
> using System.Linq;
> using System.Text;
>
> namespace UtilityMethods
> {
> public class AddClass
> {
> public static long Add(long i, long j)
> {
> return (i + j);
> }
> }
> }
> ---------------------------------------------------------------------------
>
> -multi.cs--(クラスライブラリのプロジェクトにファイル追加)------------------
> using System;
> using System.Collections.Generic;
> using System.Linq;
> using System.Text;
>
> namespace UtilityMethods
> {
> class MultiplyClass
> {
> public static long Multiply(long x, long y)
> {
> return (x * y);
> }
> }
> }
> ---------------------------------------------------------------------------
>

すいません、自己解決してしまいました。

作成したDLLをソリューションエクスプローラにて、[参照設定の追加]で、ディレクトリを作成してあげて、Using似て追加されるのを確認後、「.」で関連付けを行うだけで、OKのようです。
また何かありましたら、よろしくお願いします。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -