「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@297) [高] [解決]
@297■ (#885) lua言語で「luacom」の宣言でエラーがでます。 - hihiro (2009-06-16 19:11) /低 未処理
なでしこでlua言語を使う。
面白そうなので、ぜひいろいろ使ってみたいと思います。

【症状】どのような症状、現象か?
『Luaとなでしこのラブラブ仲良し生活(2) - Luaで外部ライブラリを呼び出す』の「Lua から Windows の機能を呼ぶ方法」のサンプルプログラムを実行するとエラーとなります。

[エラー] LUA.nako.bak(1): 関数『LUA』の実行中にエラーが起きました。error loading module 'luacom' from file 'D:\Utyprog\nadesiko\clibs\luacom.dll':
  system error 14001

ちゃんと、\clibs\luacom.dllは、存在しています。
require('luacom')宣言のないほかのプログラムは、ちゃんと動きます。

【再現方法】サンプルソース、再現手順など
#サンプルプログラム
LUA(`---
require('luacom') -- luacom を使うことを宣言
ie = luacom.CreateObject("InternetExplorer.Application") -- オブジェクトを作る
ie:Navigate2("http://nadesi.com") -- IEのNavigate2メソッドを呼ぶ
ie.Visble = true
---`)
#ここまで

LUA(`require'luacom'`)
だけでも発生します。

「alien で Windows API を呼び出す」のサンプルプログラムは問題なく動きます。
LUA(`require 'alien'`)
では、エラーでません。

【要望】どのような解決が望ましいか?
私の環境のせいなのか、ほかの方も発生するのか
ぜひエラーの解消をお願いします。

【バージョン】確認したバージョン
バージョン:1.523
XP SP3 とXP SP1 で確認

【その他】
lua言語を使ってなでしこの拡張が簡単に出来ればもっと楽しくなると思うので、ぜひ使えるようによろしくお願いいたします。

(#886) こちらではIEが起動しませんでした - canot (2009-06-16 22:51) /低 未処理
面白いことにうちではうんともすんとも言いません。
エラーも出ませんし、IEが起動することもなく…

バージョン:1.523
XP SP3
IE 8

(#888) 同様の症状です。 - 99yen (2009-06-17 10:15) /低 未処理
こちらの環境でもIEが起動しませんでした。LUA言語自体は動いているようですが・・・
OS : XP SP3, 7RC

(#889) IEのサンプルは、XPで動かない? - クジラ飛行机 (2009-06-17 11:15) /高 詳細求む!
> hihiro さんへ
clibs\luacom.dll にある、LuaCOM のコンパイル日をチェックしていただけますでしょうか?

2008/05/16 のものは、現行の Lua に添付しているもので、これを利用すると、上記のようなエラーがでます。
2009/05/25 のものは、エラーがでないように私がコンパイルし直したものとなっています。

以前のなでしこには、古い luacom.dll を添付していましたので、もしかしたら、luacom.dll が
更新されていないのが原因かも?!


> IEが動かない問題

すみません。Vista では動いたのですが、さっき、XPで試してみたら、確かにXPでは、サンプルが動きませんね。
Excelのサンプルは動くようですので、Excelのサンプルが動くか確かめてみてください。

{{{
LUA(`---
require "luacom"
-- Excelの起動
excel = luacom.CreateObject("Excel.Application")
excel.Visible = true -- 可視状態に
-- ワークブックを追加
local book  = excel.Workbooks:Add()
local sheet = book.Worksheets(1)
-- 適当な値を100個書き込む
for row=1,100 do
  sheet.Cells(row, 1).Value2 = math.floor(math.random() * 100)
end
---`)
}}}

(#891) LuaCOM のコンパイル日をチェック - hihiro (2009-06-18 11:29) /高 詳細求む!
クジラ飛行机さん お世話になります。

luacom.dllのコンパイル日は、ファイルプロパティの更新日で良いのでしょうか。
2009年5月25日、9:42:42 となっています。
バージョン:1.523の luacom.dll を使っています。
また、http://aoikujira.com/demo/sozai/2009052562vrsE-luacom.zipのファイルも同じものだと思います。

Excelのサンプルも同上のエラーで動きません。

以上、よろしくお願いいたします。

(#895) RE:IEのサンプルは、XPで動かない? - canot (2009-06-18 04:22) /高 詳細求む!
>Excelのサンプルは動くようですので、Excelのサンプルが動くか確かめてみてください。
すみませんMSOffice高価なのでOOoが入った機体しかないです(>_<;)
Officeがプリインストールされた旧メインPC引っ張り出すのも骨が折れますので
ほかの方テストよろしくお願いします

(#896) Excel動きました - 99yen (2009-06-18 11:59) /高 詳細求む!
Excel2000で動作しました。しかし、なぜIEはだめなのでしょうかね…?

(#897) 「luacom」を使うには、VC90ランタイムのインストールが必要みたいです。 - hihiro (2009-06-18 21:12) /高 確認待ち
「luacom」の宣言でのエラーを解消する事が出来ました。

> イベントビューアのシステムイベントに下記のエラーいっぱい表示されていました。

●「従属するアセンブリ Microsoft.VC90.CRT を検出できませんでした。エラー: 参照されたアセンブリはシステムにインストールされていません。」

●「Resolve Partial Assembly が Microsoft.VC90.CRT に失敗しました。 参照エラー メッセージ : 参照されたアセンブリはシステムにインストールされていません。」

●「Generate Activation Context が D:\uty\nadesiko\clibs\luacom.dll に失敗しました。 参照エラー メッセージ : この操作を正しく終了しました。」

> ネットでいろいろ調べてみたら、VC90ランタイムがなかったためのエラーだったようです。
http://www.microsoft.com/Downloads/details.aspx?displaylang=ja&FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2から「vcredist_x86.exe」をダウンロード後、インストールしたらエラーはなくなりました。

多分、エラーの出てない方は、すでに「Microsoft Visual C」等をインストールされており、ランタイムがあったのだと思います。

> これで、エクセルのサンプルは動きました。IEのサンプルはだめでしたが、よくよくサンプルプログラム見てみると。

#サンプルプログラム
LUA(`---
require('luacom') -- luacom を使うことを宣言
ie = luacom.CreateObject("InternetExplorer.Application") -- オブジェクトを作る
ie:Navigate2("http://nadesi.com") -- IEのNavigate2メソッドを呼ぶ
ie.Visble = true ---ここ---
---`)
#ここまで

の「ie.Visble = true」は、「ie.Visible = true」の記述ミスのようです。
ここを直したらOKでした。


> 「クジラ飛行机」さんへ
とりあえずは、エラーの原因と解消方法、IEの原因が分かったので「解決」で良いかと思いますがよろしいでしょうか。

以上。

(#898) IE起動できました - 99yen (2009-06-18 16:23) /高 詳細求む!
XPでIE動きました。
//ここから
LUA(`---
require('luacom')
ie = luacom.CreateObject("InternetExplorer.Application")
ie:Navigate2("http://nadesi.com")
ie.Visible = true
---`)
"Internet Explorer"を窓アクティブ
//ここまで

(#902) 調査に感謝 - クジラ飛行机 (2009-06-20 22:50) /高 解決
hihiro さん、調査してくださってありがとうございます。
Microsoft.VC90 のランタイムエラーは、こちら(@301)のスレッドで、
修正したいと思います。

連載にあるIEのVisible のタイポは修正しました。
ご協力ありがとうございました。

(#904) 連載修正、もう一箇所お願いします。 - hihiro (2009-06-21 19:06) /高 解決
> Microsoft.VC90 のランタイムエラーは、こちら(@301)のスレッドで、
修正したいと思います。
 よろしくお願いいたします。

> 連載修正箇所
『Luaとなでしこのラブラブ仲良し生活(1) - なでしこv1.522でLuaをサポート』
http://www.hakkaku.net/articles/20090608-458 の
「WindowsのCOMコンポーネントを利用する」にも
Internet Explorerのサンプルがあり、ここも「Visble」となっています。

お手数ですが、修正願います。

以上。 

(#885)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能