RSS2.0 hr
カテゴリ
 連絡事項 (11)
 開発全般 未分類 (2)
 WEB開発 未分類 (1)
 C# (1)
 Java (2)
 PHP (1)
 Flash (1)
 WPF, Silverlight (6)
 Android (2)
 MySQL (1)
 ニコ窓 (66)
 Nico Rec Ctrlr (4)
 Live Seeker (8)
 Live Seeker Lite (4)
 Nico2ls (1)
 未完成ツール (7)
 TinyMCE (4)
 FFmpeg (6)
 Linux (1)
 PCパーツ関連 (1)
 掲載誌 (3)
コンテンツ一覧
最新記事
2021/11/24 00:00
東芝 dynabook KIRA V832/28HS のSSD換装
2015/01/12 12:00
ニコ窓の開発&公開終了
2014/05/04 00:00
ニコ窓 Ver3.015 公開
2014/04/27 00:00
ニコ窓 Ver3.014 公開
2014/03/08 00:00
ニコ窓 Ver3.013 公開
コンテンツ一覧
公開ツール
ニコ窓
ニコニコ生放送用
ブラウザ
ニコ窓
コンテンツ
P. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 List
■ Live Seeker Lite Ver1.005 公開 - 2010/03/12 23:00:00

Live Seeker Lite Ver1.005』を公開しました。

■ 対応内容

・ツールのヘルプのURLを新サイト(http://motta.toypark.in/)へ変更。

■ ダウンロード

最新版のダウンロード、ツールの詳細は、以下のページを参照して下さい。
アップデートの場合は、アーカイブに同梱した[アップデート方法.txt]をご覧下さい。

Live Seeker Liteのページへ

[Live Seeker Lite]

Live Seeker Lite
カテゴリ: Live Seeker Lite  ブックマーク: はてなブックマーク Yahoo!ブックマーク Googleブックマーク Twitterでつぶやく  コメント( 0 )
■ 仮運用開始 - 2010/03/11 22:00:00

前サイトから記事の移行が完了したため、仮運用を開始しました。
その他の記事については、今後、移行する予定です。

■ ツールのダウンロード先について

ツールのZIPファイルを Vector 内のWEBスペースに置いているため、Vector(hp.vector.co.jp) からのダウンロードになります。
実際には、IE等の「ファイルのダウンロード」メッセージボックスで、発信元が "hp.vector.co.jp" と表示される程度で、通常は、特に気にする必要はありません。

カテゴリ: 連絡事項  ブックマーク: はてなブックマーク Yahoo!ブックマーク Googleブックマーク Twitterでつぶやく  コメント( 0 )
■ Javaからネイティブコードの呼び出し(JNI) - 2010/03/10 23:00:00

Javaからネイティブコード(C言語、C++等)の関数を呼ぶ場合、JNI(Java Native Interface)を使う方法があります。

今回は、JNIを使って、C++で書かれた関数を呼んでみます。
具体的には、Javaでクラス、C++でDLLを生成して、Javaのクラスから、DLLを呼ぶことになります。
Javaでは、ネイティブコードの関数と同様の型のネイティブメソッドを宣言します。
このネイティブメソッドを宣言すると、ネイティブコードの関数を、通常のメソッドのように、Javaから呼び出せるようになります。

開発環境と主な手順は、以下のようになります。

▽ 開発環境

OS: WindowsXP Professional
Javaコンパイラ: Java SE Development Kit 5.0 Update 8
Cコンパイラ: Visual C++ 2005 Express Edition

▽ 主な手順

① Javaコードを書く(JniTest.java)。
② ①のコード(JniTest.java)をコンパイルし、クラスを生成する(JniTest.class)。
更に、C++用のヘッダーファイルを生成する(JniTest.h)。
③ ヘッダーファイル(JniTest.h)を使って、C++のコードを書く(JniTestLib.cpp)。
④ ③のコードをコンパイルし、DLLを生成する(JniTestLib.dll)。
⑤ ②のJavaのクラス(JniTest.class)を実行し、DLL(JniTestLib.dll)のネイティブメソッドを呼ぶ。

◆ 開発

① Javaコードを書く(JniTest.java)。

ネイティブメソッド(TestMethod)の宣言と、Java側の処理を実装します。
サンプルでは、ネイティブメソッドしか呼んでいません。

[ JniTest.java ]

public class JniTest
{
    static
    {
        // ライブラリ(DLL)のロード
        System.loadLibrary("JniTestLib");
    }

    // ネイティブメソッドの宣言
    public native String TestMethod();

    public static void main(String[] args)
    {
        JniTest jt = new JniTest();

        // ネイティブメソッドを呼ぶ
        System.out.println(jt.TestMethod());
     }
}

② ①のコード(JniTest.java)をコンパイルし、クラス(JavaTest.class)を生成する。
更に、C++用のヘッダーファイル(JniTest.h)を生成する。

▽ クラス(JavaTest.class)の生成

コマンドプロンプトから、javac.exe でコンパイルします。

javacでコンパイル

▽ C++用のヘッダーファイル(JniTest.h)の生成

ヘッダーの生成には、javah.exe を使い、引数には、JniTest(.class)を指定します。

javahでヘッダーの生成

以下のような内容のヘッダーが生成されます。
"JNICALL Java_JniTest_TestMethod"メソッドが、C++のDLLで実装するネイティブメソッドになります。

[ JniTest.h ]

/* DO NOT EDIT THIS FILE - it is machine generated */
#include 

/* Header for class JniTest */
#ifndef _Included_JniTest
#define _Included_JniTest
#ifdef __cplusplus
extern "C" {
#endif

/*
 * Class:     JniTest
 * Method:    TestMethod
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_JniTest_TestMethod
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

③ ②のヘッダーファイル(JniTest.h)を使って、C++のコード(JniTestLib.cpp)を書く。

ここからは、Visual C++ 2005 を使います。

▽ 空のプロジェクトの作成

Visual C++ 2005 を起動し、空のプロジェクト(JniTestLib)を作成します。
Expressでは、DLLの項目がないため、ここでは、空のプロジェクトを選択します。

空のプロジェクトを作成

▽ C++ファイルの追加

作成したプロジェクトに、新規にC++ファイル(JniTestLib.cpp)を追加します。

C++ファイルを追加

②で生成したC++用のヘッダー(JniTest.h)をプロジェクトに追加します。

ヘッダーをプロジェクトに追加

[ JniTestLib.cpp ]

#include 
#include 
#include "JniTest.h"

JNIEXPORT jstring JNICALL Java_JniTest_TestMethod(JNIEnv *env, jobject obj)
{
    printf("DLLの Java_JniTest_TestMethod() が呼ばれました。\n");
    return env->NewStringUTF("Java_JniTest_TestMethod() was completed.");
}

④ ③のコードをコンパイルし、DLLを生成する。

▽ プロジェクトのプロパティの設定

プロジェクトのプロパティを、DLL生成用に変更します。
[構成プロパティ]→[全般]→[構成の種類]を "ダイナミック ライブラリ(.dll)" に変更します。

プロジェクトのプロパティの設定

[構成プロパティ]→[C/C++]→[全般]→[追加のインクルードディレクトリ]に、JDKのインクルードディレクトリを指定します。

インクルードディレクトリを指定1
インクルードディレクトリを指定2

[構成プロパティ]→[リンカ]→[全般]→[出力ファイル]の拡張子を、"dll"に変更します。

拡張子の変更

以上で、プロパティの設定は、完了です。

▽ DLLのビルド

ビルドし、エラーがでなければ、JniTestLib.dll が生成されます。

⑤ ②のJavaのクラス(JniTest.class)を実行し、DLL(JniTestLib.dll)のネイティブメソッドを呼ぶ。

②のJavaクラス(JniTest.class)、④のDLL(JniTestLib.dll)を同一ディレクトリにコピーします。
コマンドプロンプトから、Javaクラス(JniTest.class)を実行すると、以下のようにDLL(JniTestLib.dll)のネイティブメソッドが呼ばれます。

ネイティブメソッドを呼ぶ

- 以上 -

編集履歴
[2007/05/17] 新規作成。
[2007/05/19] 前置きを少し修正。
[2008/08/29] レイアウトを修正。
[2009/01/--] サイト移転。レイアウト変更。
[2009/06/24] レイアウト変更。
[2010/03/10] サイト移転。レイアウト変更。
[2010/07/04] URL変更。

カテゴリ: Java  ブックマーク: はてなブックマーク Yahoo!ブックマーク Googleブックマーク Twitterでつぶやく  コメント( 0 )
■ C#からネイティブコードの呼び出し(DllImport属性) - 2010/03/10 22:00:00

C#からネイティブコード(C言語、C++等)の関数を呼ぶ場合、
C#側で"System.Runtime.InteropServices.DllImport"属性を指定して、その関数と同様のメソッドを宣言します。
DllImport属性を指定して宣言すると、ネイティブコードの関数を、通常のメソッドのように、C#から呼び出せるようになります。

今回は、C#のコンソールアプリから、WIN32APIのGetComputerName()を呼んでみます。
GetComputerName()は、ローカルコンピュータのNetBIOS名を取得するAPIで、Kernel32.dllにあります。

開発環境と主な手順は、以下のようになります。

▽ 開発環境

OS: WindowsXP Professional
C#コンパイラ: Visual C# 2005 Express Edition

▽ 主な手順

① VC#で新規プロジェクト(コンソール アプリケーション)を作成する。
② DllImport属性を指定して、GetComputerName()を宣言する。
③ ②のGetComputerName()を呼び、コンピュータ名を取得し、表示する。

◆ 開発

① VC#で新規プロジェクト(コンソール アプリケーション)を作成する。

今回は、プロジェクト名を"DllImportTest"にしています。

② DllImport属性を指定して、GetComputerName()を宣言する。

DllImport属性は、下記、ソース(Program.cs)の青字部分のように指定します。
メソッドの宣言は、WIN32APIと.NET(C#)で、変数の型名が異なるので、以下のように一致させる必要があります。

◇ WIN32API

BOOL GetComputerName(LPTSTR lpBuffer, LPDWORD lpnSize);

◇ .NET(C#)

public static extern bool GetComputerName(StringBuilder buffer, ref uint size);
または
static extern unsafe bool GetComputerName(byte* lpBuffer, long* nSize);

WIN32APIと.NET(C#)での型の違いは、PINVOKE.NET で調べられます。

PINVOKE.NET: http://pinvoke.net/

[ Program.cs ]

using System;
using System.Collections.Generic;
using System.Text;

namespace DllImportTest
{
    class Program
    {
        // DllImport属性をしてメソッドを宣言
        [System.Runtime.InteropServices.DllImport("kernel32.dll")]
        public static extern bool GetComputerName(StringBuilder buffer, ref uint size);

        static void Main(string[] args)
        {
            StringBuilder buffer = new StringBuilder(256);
            uint size = 256;

            // API呼び出し
            if (GetComputerName(buffer, ref size))
            {
                // コンピュータ名を表示
                System.Console.WriteLine("Computer name: {0}", buffer.ToString());
            }
            else
            {
                System.Console.WriteLine("GetComputerName() - error");
            }
        }
    }
}

③ ②のGetComputerName()を呼び、コンピュータ名を取得し、表示する。

②で宣言したGetComputerName()を、赤字部分のように呼び、コンピュータ名を取得します。
最後に、WriteLine()メソッドで、コンピュータ名を表示して終了です。

DllImport属性を使ってメソッドを宣言すれば、WIN32APIでも通常のメソッドとして呼べるようになります。

- 以上 -

編集履歴
[2007/05/19] 新規作成。
[2007/07/14] 誤植修正。
[2008/08/29] レイアウトを修正。
[2009/01/--] サイト移転。レイアウト変更。
[2010/03/10] サイト移転。レイアウト変更。
[2010/07/04] URL変更。

カテゴリ: C#  ブックマーク: はてなブックマーク Yahoo!ブックマーク Googleブックマーク Twitterでつぶやく  コメント( 0 )
■ ASP.NETでTinyMCEを使う 1/4 - 2008/12/12 00:00:03

※ この記事は、前サイトで2008/12/12 に作成したものであるため、現在の TinyMCE では、設定が異なるかもしれません。

TinyMCEを使う

このページでは、TinyMCEのインストール、サンプルの実行、ASP.NETで使う場合の方法をまとめています。

TinyMCEは、インストールも使い方も容易であるため、先に本家のWikiを見て頂いた方が良いかと思います。
Wikiで分かるようでしたら、このページは読む必要はありません。

TinyMCE: http://tinymce.moxiecode.com/
Demo: http://tinymce.moxiecode.com/examples/full.php
Wiki: http://wiki.moxiecode.com/index.php/TinyMCE:Index

余計な説明を飛ばして、直ぐ使ってみたい方は、下のページに解説があります。

TinyMCE:Installation: http://wiki.moxiecode.com/index.php/TinyMCE:Installation

■ TinyMCEの概要

ASP.NETで使えるHTMLエディターには、FreeTextBoxやFCKeditor等もありますが、これらは、ASP.NETのコントロールとして作られています。
TniyMCEがこれらと異なる点は、JavaScriptのみで動作するように作られていることです。

TinyMCEの場合は、HTMLフォームの<textarea>をJavaScriptで認識し、それに機能を付加する形で動作しているようです。

ですので、TniyMCEからは、貼り付けられたページがどういうものかは、特に意識されておらず、JavaScriptが動作するブラウザーであれば、WEBサーバーに依存せず動作します。
通常のHTMLでもASP.NETのページでも、基本的に同じ方法で使用できます。

他のHTMLエディターがコントロールのプロパティで設定を行うのに対し、TinyMCEは、JavaScriptで設定を行います。
設定は、手書きになりますが、複雑ではないため、設定方法が分かれば、コントロールのプロパティ設定とあまり変わらないと思います。

付加機能のGZIP圧縮を使用する場合は、別途、各WEBサーバー用のプログラムをサーバへ入れておく必要があります。

■ TinyMCEのインストール

今回は、IIS+ASP.NET2.0で、TinyMCEのVer3.2.1.1を使いました。
WEBサイトのルートフォルダは、[/TestSite]としています。
GZIP圧縮については、別の機会で説明します。

[Download]

以下のページから、TinyMCEの[Main Package: tinymce_3_2_1_1.zip]と[Language packs: Japanese(tinymce_lang_pack.zip)]をダウンロードします。

TinyMCE: http://tinymce.moxiecode.com/download.php

[メインパッケージのインストール]

ダウンロードしたtinymce_3_2_1_1.zipを展開すると以下のフォルダ、ファイルができます。

/examples ・・・TinyMCEのサンプルのファイル&フォルダが格納されている
/jscripts/tiny_mce ・・・TinyMCEのJavaScript本体が格納されている
changelog.txt ・・・変更履歴

上記の2つめのフォルダ[/jscripts/tiny_mce]を、WEBサイトのフォルダへコピーします。
今回は、WEBサイトのルート直下の[/TestSite/jscripts/tny_mce]へコピーしました。

フォルダは、[/tiny_mce]だけでもいいのですが、サンプルが[/jscripts/tiny_mce]へインストールされている前提となっているため、それに従います。

[/examples]フォルダは、次ページの「サンプルの動作確認」で使用しますので、削除せずにとっておいて下さい。

[言語パックのインストール]

言語パックのインストールは、フォルダを上書きするだけです。
tinymce_lang_pack.zipを展開すると、フォルダが3つ(langs,plugins,themes)できるので、先程インストールしたメインパーケージ[/TestSite/jscripts/tiny_mce]のフォルダへ上書きします。

実際の言語の選択は、TinyMCEを使うページのJavaScriptで言語を指定する形となります。具体的な方法は、他の項目と一緒に後で説明します。

インストールについては、これだけで設定することも、特にありません。
各設定は、TinyMCEを使うページ側(html,aspx等)のJavaScriptで行うことになります。

TinyMCEをWEBページから使う前に、次ページでは、サンプルで動作確認を行ってみます。

次ページ...

カテゴリ: TinyMCE  ブックマーク: はてなブックマーク Yahoo!ブックマーク Googleブックマーク Twitterでつぶやく  コメント( 0 )
P. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 List
お知らせ
サイト情報
2015/01/12 00:00
ニコ窓の開発&公開を終了しました。
閲覧者数
今日: 51 昨日: 37
合計: 834685 (PV)
開始: 2010/03/11
ツールは公開終了しました。
リンクは自由に張って頂いて構いません。
管理人: motta
  はてなブックマーク Yahoo!ブックマーク Googleブックマーク Twitterでつぶやく
  RSS2.0 RSS2.0
  My Yahoo!
  livedoor Reader
  Windows Live
 
ACR WEB