So-net無料ブログ作成

.NET Framework で C++ で作成された DLL を使用するには? [NT]

.NET Framework の TIPS。

C# や VB.NET などの .NET Framework 上で C/C++ で作成された DLL を利用するサンプル。

例えば、dlltest.dll (with C++) が次のコードであったとする。

dlltest.cpp

dlltest.def

このとき、C# では次のように記述する。

Class1.cs

すると次の実行結果が得られる。

実行結果


C# で Menu や Button にアクセラレーター・キーを付加するには? [NT]

.NET Framework の TIPS。

アクセラレーターキーとは、Windows で Menu や Button のテキストに表示される 「ファイル(F)」の「(F)」 の部分のことであり、キーボードで項目を選択する機能である。例えば、「ファイル(F)」メニューならば、 ALT+F でそのメニューを選択できる。

ショートカットキーは、通常、CTRL などの組み合わせであり、アクセラレーターキーとは少々使い勝手が異なる。

C# (恐らく VB.NET も) で Menu や Button にアクセラレーター・キーを付加するには次のように記述する。

button.Text = "OK(&T)"

このように記述すると、そのボタンがあるフォーム上にフォーカスがある状態で、キーボードから 「t」 をタイプすると、マウスで 「OK」 ボタンを押したのと同様の効果を得られる。


JavaScript では通信可能なサーバが制限されている? [NT]

JavaScript では JavaScript のあるホスト以外のデータとやりとりすることは基本的に出来ない。例えば、外部ホストにある HTML/XML/TEXT などを読み込むことは出来ない。

しかし、SCRIPT タグ内の JavaScript は例外で、外部ホストにある JavaScript ファイルを読み込むことが可能である。この機能を利用して、Google は GoogleMaps を API として公開している。

すなわち、外部ホストが自身のデータを JavaScript オブジェクトとして提供していれば、他ホストからのデータ参照が可能である。

参考文献


ただし、上記は 2005 年くらい前の話。その頃のブラウザの動作は上記の通りであった。多分、Internet Explorer 6 はそのままだろうけど、Fireforx や Opera や Chrome が未だにその仕様に従っているかは未確認。

So-net ブログをカスタマイズするには? [NT]

今回のエントリの要点は次の通り。

So-net ブログの HTML をカスタマイズするときによく目にする変数や条件分岐などは、Seesaa究極カスタマイズ が参考になる。

以下、解説。

So-net ブログのデザインは CSS などを用いてカスタマイズすることが可能だ。それもかなり自由度が高い。

So-net ブログをカスタマイズするには、 ブログにログインして「デザイン」タブから行う。基本的には気に入ったテンプレートを選べば良い。HTML や CSS を知っているのなら、「レイアウト」タブの各部品で「コンテンツHTML編集」を選ぶと、HTML コードそのものを編集できる。

テンプレート全体のデザインに関わる部分は「HTML編集」タブから行う。HTML を読むと、

<% if:page_name eq 'archive' %>

のような部分がたくさんある。これは条件分岐や変数の表示などを示す表記だ。これがどういう意味を持つかは、So-net 公式ページには解説がない。

参考になりそうなのが、 Seesaa究極カスタマイズ である。

なぜ、Seesaa ブログのカスタマイズ方法が So-net ブログのカスタマイズに使えるかというと、So-net ブログや さくらインターネット(レンタルサーバ事業の会社)のさくらブログはシーサー株式会社が提供するブログサービスの OEM だからだ。このことは、シーサー株式会社 | 会社情報 | 沿革 に掲載されている。シーサーは自社でも Seesaa ブログ - 無料のブログ作成(blog)サービス というブログサービスを提供している。

前述の通り、So-net ブログはシーサーの OEM であるから、シーサーで出来ることは So-net ブログでも出来ることが多い。そして、シーサーでもブログデザインのカスタマイズが可能であり、カスタマイズ可能な部分の HTML を見ると So-net と同じであるようだ。


タグ:so-net

次期バージョン(1.8.0)の Groovy はパフォーマンスがかなり向上する模様 [groovy]

海外の blog で Groovy/Java/Scala のクイックソートでのパフォーマンスの比較結果が公開されている。

最終的な結果は 2 つ目の Groovy++ Performance - Now we're talkin' で紹介されている。

それによると、Java にかなり近いパフォーマンスを得られたようだ。現在のバージョンと比較すると 300倍くらい速くなっている。

Groovy で Web サービスを作成しても、パフォーマンス的には余り問題なら無くなるかもしれない。

ただ、JVM (Java Virtual Machine、Java 仮想マシン) 上で動作する言語は、非常に起動が遅い。これは Groovy、Scala、JRuby  などどれも同じだ。これは JVM の問題であり、Sun はこれを少しでも改善するために Java Quick Starter (jqs.exe) を用意して、高速化を図っているがまだ改善の余地がある。

シェルスクリプトの代わりに Groovy で作成したスクリプトを動かすとその差は顕著に感じる。起動してからの実行時間はシェルスクリプトより高速化もしれないが、それまでが...。

回避策としては、

辺りで紹介されているように、Groovy のプロセスを起動させたままにするという方法がある。

これはこれで、妥当な回避策であるが、例えば、レンタルサーバでの利用を考えると、長時間プロセスを起動させたままにすることができず使えない。ちょっと微妙。


タグ:Groovy

SQL Server で文字列を置換するには? [NT]

これまでの

に引き続き、SQL Server の TIPS をメモしておく。

SQL Server で文字列を置換するには?

replace 関数を使う。ただし、ntext、text 型では使えない。そこで、8000字以内(半角?)の場合は、varchar に cast して逃げる方法がある。

この例では、DesktopHtml が text だが 8000字以内なので、varchar に cast してから  /HOGENUKE/ を /DotNetNuke/Edit/ に置換している。

SQL Server のデータベースバックアップ/リストアの例

SQL Server でデータベースをバックアップ/リストアするには? のエントリで、バックアップ/リストアするコマンドを紹介したが、その実行例を次に示す。ただし、これは SQL Server ではなく、SQL Server を元にして開発された MSDE 2000 インスタンスの例であることを初めにお断りしておく(SQL Server であっても同様のコマンドを利用できる)。

実行結果を見ると、データベースとログの両方がバックアップ、リストアされているのが分かる。


タグ:SQL Server

SQL Server でデータベース一覧を表示するには? [NT]

前回、前々回の

に引き続き、SQL Server の TIPS をメモしておく。

データベースの一覧を表示するには?

select * from sysdatabases

バックアップしたデータベースの物理ファイルリストを表示するには?

RESTORE FILELISTONLY FROM DISK='L:\DotNetNuke.bk'

コマンドラインから SQL を発行 + 出力結果を hoge.log に保存するには?

osql ユーティリティを用いて次のように記述する。
osql -S (local)\MSDE2K -U sa -Q "select * from sysdatabases" -o hoge.log

この場合、標準出力には出力されなくなる。

尚、osql ユーティリティの詳細は osql ユーティリティ を参照して欲しい。

SQL をファイルで用意し実行するには?

osql -S (local)\MSDE2K -U sa -i sql.txt

sql.txt を次のようにすれば、複数のデータベースのバックアップがとれる。

BACKUP DATABASE DotNetNuke TO DISK='DotNetNuke'
BACKUP DATABASE DotNetNuke2nd TO DISK='DotNetNuke2nd'
BACKUP DATABASE DotNetNuke40 TO DISK='DotNetNuke40'
BACKUP DATABASE DotNetNukePub TO DISK='DotNetNukePub'
BACKUP DATABASE DotNetNukeTEST TO DISK='DotNetNukeTEST'
go

タグ:SQL Server

SQL Server でデータベース名を変更するには? [NT]

前回の SQL Server でデータベースをバックアップ/リストアするには? に引き続き、SQL Server の TIPS をメモしておく。

バックアップしたデータベースの物理ファイルリストを表示するには?

RESTORE FILELISTONLY FROM DISK='L:\DotNetNuke.bk'

データベース名を変更するには?

sp_renamedb dotnetnukeedit, dotnetnukepub
この場合、論理/物理ファイル名は変更されない。

論理/物理ファイル名の表示

use dotnetnukepub
go sp_helpfile
go

論理ファイル名の変更

alter database dotnetnukepub modify file (name='dotnetnukeedit' , newname='dotnetnukepub')
go
alter database dotnetnukepub modify file (name='dotnetnukeedit_log' , newname='dotnetnukepub_log')
go
データファイル名とログファイル名(共に論理ファイル名)を変更。物理ファイル名は変わらない。

物理ファイル名の変更

まず、データベースをデタッチする。
use master
go
sp_detach_db dotnetnukepub
go
デタッチしたので、エクスプローラなどでファイル名を変更する。そしてアタッチする。
go
sp_attach_db dotnetnukepub, 'E:\Data\dotnetnukepub.mdf','E:\Data\dotnetnukepub_log.LDF'
go

タグ:SQL Server

SQL Server でデータベースをバックアップ/リストアするには? [NT]

最近扱っているのは Oracle が多いのだけれど、SQL Server のエントリを幾つか投稿。

SQL Server で使用される SQL は Transact-SQL と呼ぶ。これは、ANSI/ISO が規格化した SQL (Structured Query Language) を Miscrosoft が拡張したもの。リファレンスは、

にある。

ということで、まずは、データベースのバックアップとリストアから。DotNetNuke という名称のデータベースを運用していて、L:\DotNetNuke.bk にあるファイルへバックアップ/リストアするには次のように記述する。

バックアップ

BACKUP DATABASE DotNetNuke TO DISK='L:\DotNetNuke.bk'

リストア

RESTORE DATABASE DotNetNuke FROM DISK='L:\DotNetNuke.bk'


SQL Server でデータベース名を変更するには? に続きます。


Ghostscript/xdvi(VFlib)のフォントの変更方法 [NT]

Ghostscript/xdvi(VFlib) のメモ。2004 年くらいの話なので現在では情報が古いかもしれない。

Ghostscript は PostScript のレンダラソフト。要は、PostScript を印刷したいなら PostScript 対応プリンタ(値段が高め)を用いるか、Ghostscript を利用すればよい。

Ghostscript/xdvi(VFlib) でフォントを変更するには /etc/vfontcap の以下の行を書き換える。

/usr/share/fonts/alias/TrueType/mincho-mr-jisx0208.1983-0.ttf はシンボリックリンクになっているのでこれを張り替えても良い。

[vine-users:027578] Re: vfontcapの設定について によると

ちなみにghostscriptは ~/vfontcapがあれば、それを使うので
/etc/vfontcapを書き換えなくとも実験できます。ただ、VFlibは、そんな
ことはしないので、~/vfontcapに定義されたフォントをktestで見ることは
できません。
とある。xdvi は VFlib を使用しているらしいので /etc/vfontcap を書き換えないとならないようだ。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。