ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

 VB2008Expressでソフト作成していましたが、Windows2000でも動かす必要が発生し、VB2005Expressに環境を変更(ダウングレード?)しました。VB2008ExpressがWindows2000に対応していないというのに気がつきませんでした。
 すると、VB2008Expressで作成していたソリューションファイルが開きません。以下のエラーが表示され、それで終わりです。
『選択されたファイルはソリューションファイルですが、このアプリケーションより新しいバージョンで作成されたため、開くことができません。』

 何らかの方法でVB2008Expressのソース一式をVB2005Expressで利用することはできないでしょうか?
(実行形式のファイルだけでなく開発環境そのものからWindows2000で動かす必要に迫られています。)
 VB2008ExpressとVB2005Expressとで、相互に使える必要はないです。一旦VB2005Expressに持って行ければ、それはそのままでOKです。

 作成したソフトはそう大規模なモノはないので、方法がなければベタですが、一から作り直そうかと思ってます。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

VB2008と同じソリューション/プロジェクトの構成を先に作ってしまいます


このとき Formなどを必要とするものは最低1つのみを追加しておきます
次に、2008側のソースを各プロジェクトごとにエクスプローラなどでコピーしておきます
VB2005で生成した同名ファイルも上書きしておきます

VB2005でソリューション/プロジェクトを選択して
既存のファイルの追加操作をします
これで 2008固有の機能を使用していなければコンパイルできるようになるると思います

ソースをコピーしないで 2008のソースをそのまま追加すると
2008のファイル位置にあるソースでコンパイルしようとします
2008/2005で完全に同じソースを使うのであればこの方法でもいいのですが
2005側だけ修正したい場合(またはその逆)上記のようにソースを先にコピーしておきましょう

この回答への補足

 回答ありがとうございます。
 VB2008と同じソリューション,プロジェクトを作成し、Form1のみ作って保存しました。
 その後、既存ファイルの追加をしようとしましたが、やはりFormのデザインが持ってこれません。以下のエラーとになりました。
『デザイナは 218 行のコードを処理できません。 Me.ShapeContainer1.Location = New System.Drawing.Point(0, 0) メソッド 'InitializeComponent' 以内のコードは、デザイナによって作成されたので手動では変更できません。変更を削除して、デザイナを再度開いてください。』

 コンポーネントそのものはプリミティブなものしか使っていないつもりです。
 Formのデザインの内容を持ってくるにはどうしたらよいでしょうか?

補足日時:2009/05/17 17:05
    • good
    • 0

ソースファイルなどの数がそれほどでもなければ、ソリューションとプロジェクトだけをVB2005Expressで新規作成し、プロジェク

トファイルなどを除いたものをフォルダにコピーしてから、「追加」-「既存の項目...」とやってはどうでしょうか?

この回答への補足

 回答ありがとうございます。
 やってみましたが、Formでエラーが沢山出てきます。以下は一例ですが、これによりFormがさっぱり出てきません。
『警告 1 デザイナは 217 行のコードを処理できません。 Me.LineShape1.Name = "LineShape1" メソッド 'InitializeComponent' 以内のコードは、デザイナによって作成されたので手動では変更できません。変更を削除して、デザイナを再度開いてください。』

 VB2008で、コンポーネントを配置・設定した際、通常の設定以外のところでVB2008で新規に追加されたプロパティが設定されている感があります。
 そのため、ほぼ全てのコンポーネントでエラーが発生し、肝心のFormが全く出てきませんでした。
 Formのみ手入力して、プロパティを合わせた後で、コードをコピーしたほうが(手はかかりますが)手早いかなと思いました。

補足日時:2009/05/17 16:49
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLNK2019: 未解決の外部シンボルのエラーが出る

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};//自キャラの座標

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles(){
//画像ファイル読み込み
if(LoadDivGraph("media\\player01.bmp",
11,11,1,64,64,g_jikiimage) == -1) return -1;

return 1;
}


 mymain.h
//他から呼び出させるMyMainの関数
void MyMain();
int LoadFiles();


 myhelper.h(サンプルなので打ちミスはない)
#include "DxLib.h"
#include <limits.h>
#include <math.h>

//構造体宣言
//座標またはベクトルを記録する構造体
struct Vector{
float x,y;
};
typedef Vector Point2D;
//線を記録する構造体
struct Line2D{
Point2D startpos, endpos;
float katamuki;//傾きをラジアン値で記録
Vector speed;//移動している場合は速度をセット
};
//球体を記録する構造体
struct Ball2D{
Point2D position;
float hankei;//半径
};
//四角形を記録する構造体
struct Rect2D{
Point2D lefttop;
Point2D rightbottom;
float width;
float height;
};


//ライブラリ関数
Point2D PosInView(Point2D in);
int XInView(float inx);
int YInView(float iny);
void ScrollToLeft(float jikiposx);
void ScrollToRight(float jikiposx);
void ScrollToUp(float jikiposy);
void ScrollToDown(float jikiposy);
void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);
void DrawCircleInView(float x, float y, float r, int Color, int FillFlag);
void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag,
int *imgarray, int allframe, float fps);
//ベクトル関数
Vector CreateVector(Vector in, float veclen);
Vector AddVector(Vector v1, Vector v2);
Vector SubVector(Vector v1, Vector v2);
Vector AddVectorInFrameTime(Vector pos, Vector speed);
Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel);
Vector Normalize(Vector in);
Vector RotateVector(Vector in, float radian);
float VectorLengthSquare(Vector in);
float DotProduct(Vector v1, Vector v2);
float CrossProduct(Vector v1, Vector v2);
void SetLine2DKatamuki(Line2D *in);
void DrawLine2D(Line2D in, int Color, int Thickness);
void DrawBall2D(Ball2D in, int Color, int Fill);
//当たり判定関数
bool HitTestLineAndBall(Line2D linein, Ball2D ballin);
bool IsPointAtLineFace(Line2D linein, Point2D ptin);
bool HitTestLineAndLine(Line2D line1, Line2D line2);
bool HitTestBallAndBall(Ball2D a, Ball2D b);
bool HitTestPointAndBox(Rect2D rect, Point2D pt);
//タイマー関数
void SetSimpleTimer(int idx, int time);
int GetPassedTime(int idx);


//グローバル変数
extern float g_frametime;
extern Rect2D g_framerect;//画面領域(当たり判定)
extern Point2D g_current_field_pos;//現在の左上座標
extern Rect2D g_stagesize;//ステージサイズ

//定数宣言
const float ZEROVALUE = 1e-10f;
const float PIE = 3.1415926f;
const int SCROLL_LIMIT = 200;
----------------------------------------------------------------
 エラー内容
1>myhelper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl MyMain(void)" (?MyMain@@YAXXZ) が関数 _WinMain@16 で参照されました
1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です
1>my - エラー 2、警告 0
ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ
----------------------------------------------------------------
画像を貼り付けときます
(見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html)
初心者なのでわかりやすくお願いします

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自...続きを読む

Aベストアンサー

ファイル構成から推測するに
mymain.cpp というファイルに
void MyMain(void) {
// ここに処理を書く
}
という関数が必要なようです。

Q日付型のフィールドに空白を入れる方法を教えてください

ASP(VBScript)でSQLサーバにINSET INTO文を使ってデータを格納しているのですが、日付の部分がNULLの時、「1900/1/1」が入ってしまいます。
そのまま、空白を入れる方法はどうやったらよろしいのでしょうか?

TABLE1の内容は
番号|内容|日付です。

INSERT INTO TABLE1 VALUES ( 1, 'あいう', '')

結果
1|あいう|1900/1/1

Aベストアンサー

あとは、プログラムの書き方次第ですね、、、


If hensu=Null Or hensu="" Then
dt = "NULL"
Else
dt = "'" & hensu & "'"
End IF

E_SQL = "INSERT INTO TABLE1 VALUES & _
"( 1,'あいう', " & dt& ")"
の様に書きます。

QDWORDの実際の型は何でしょうか

VC++.NETの環境です。
DOWRD dw1 = 1;
int i = 2; と定義し
ここで
if ( i > dw1 ){
何かの処理;
}
とコーディングすると
warning C4018: '>' : signed と unsigned の数値を比較しようとしました。
のワーニングがでます。
これは、DWORDがint型でなくunsigned int型のようにも見えます。
ある本によれば(VC++.V.NET逆引き大全500の極意)
DWORD はint型であると記述されています。
もし、int型ならこのワーニングはでないはずなのですが、
なぜでるのでしょうか。又、DWORDの実際の型は何なのでしょうか。ご存じのかたおりましたら、教えていただけませんでしょうか。

Aベストアンサー

型定義が知りたいのならば、宣言ファイルを見れば疑問を挟む余地もありません。
DWORD型はwindef.hで
"typedef unsigned long DWORD;"
と宣言されています。

Visual Studioを使っているのならば、知りたい型の上にマウスポインタを置いて右クリック、ポップアップメニューの「定義へ移動」または「宣言へ移動」で簡単に知ることが出来ます。

QVB6からVB2010への変換について

今、WindowsXP上のVB6プログラムを、Windows7上のVB2010プログラムへ変換作業をしています

手順は
1.VB2008Expressのアップグレードウィザードを使って、一度VB2008版を造りました
  その時に、フォームサイズを変えるステートメントが次のように変わりました

Imports VB = Microsoft.VisualBasic

Me.Width = 16000 → VB6.TwipsToPixelsX(16000)
Me.Height = 12250 → VB6.TwipsToPixelsY(12250)

2.次にWindows7上のVB2010で上記プログラムを読み込むと.
 
    VB6.TwipsToPixelsX(16000) のところに波型のアンダーラインが引かれ
    これは「旧形式です」のメッセージが出ました

 そこで、Microsoftのフォームページ(http://go.microsoft.com/fwlin/?linkid=160862')を参考に
下記のように修正しました

Imports Microsoft.VisualBasic.Compatibility.VB6

Me.Width = Support.TwipsToPixelsX(16000)
Me.Height = Support.TwipsToPixelsY(12250)
  
   と修正しましたが波型アンダーラインは消えませんでした

そこで質問ですが
 この波型アンダーラインは無視して良いのか、
 それともまだ使い方が間違っているのか分かりません
 そこのところご教授願えれば幸いです

  

今、WindowsXP上のVB6プログラムを、Windows7上のVB2010プログラムへ変換作業をしています

手順は
1.VB2008Expressのアップグレードウィザードを使って、一度VB2008版を造りました
  その時に、フォームサイズを変えるステートメントが次のように変わりました

Imports VB = Microsoft.VisualBasic

Me.Width = 16000 → VB6.TwipsToPixelsX(16000)
Me.Height = 12250 → VB6.TwipsToPixelsY(12250)

2.次にWindows7上のVB2010で上記プログラムを読み込むと.
 
   ...続きを読む

Aベストアンサー

VB6.0 では、ScaleMode(座標系の単位)は、twip 単位で、.NET 系は、pixel 単位です。
従って、Me.Width = 16000 の 16000 をtwip → pixel に変換してやればいいだけの事です。
元々Form のサイズの設定部分のコードなので、開発環境でデザイン時に Form のサイズを設定して
貴方が求めるサイズに書き換えてやるべきかと思います。
(元々サイズを直にコードで指定しているのだから)

twip → pixel に単位変換するには、簡易的には、一般的な環境では、16000 / 15 で求める事が
できます。
正確には、環境を考慮して係数を求めて変換する必要があります。


>そこで質問ですが
> この波型アンダーラインは無視して良いのか、
の件ですが、エラーメッセージの通りで、使用できますが、暫定的な方法なので、どうするかは
貴方が決める事かと思います。

VB6.0 のコードを VB2008等へ移行する場合は、アップグレードウィザードで全面的に変換すると、
一般的なコードは問題ないのですが、グラフィックや印刷関係等多くの部分で変換しきれないものが
多くでてきて、中には上記のように中間言語のような扱いで変換される場合があり、お勧めできません
後々の事を考えたら、変換結果等を参考に一から書き直す事が一番かと思います。
(変換結果のプロジェクトは、使用しないで、新規に作成したプロジェクトで作成の事)

VB6.0 のコードを VB.NET 系に移行するには下記等が参考になるかと。

Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド
http://msdn.microsoft.com/ja-jp/library/dd314356.aspx

VB6.0 では、ScaleMode(座標系の単位)は、twip 単位で、.NET 系は、pixel 単位です。
従って、Me.Width = 16000 の 16000 をtwip → pixel に変換してやればいいだけの事です。
元々Form のサイズの設定部分のコードなので、開発環境でデザイン時に Form のサイズを設定して
貴方が求めるサイズに書き換えてやるべきかと思います。
(元々サイズを直にコードで指定しているのだから)

twip → pixel に単位変換するには、簡易的には、一般的な環境では、16000 / 15 で求める事が
できます。
正確には、環境...続きを読む

Q16進数の変換処理

VisualBasic6.0で
Val("&H" & "F")
を実行すると、15

Val("&H" & "FF")
を実行すると、255

Val("&H" & "FFF")
を実行すると、4095

Val("&H" & "FFFF")
を実行すると、-1

Val("&H" & "FFFFF")
を実行すると、1048575

という結果が得られます。

なぜ”FFFF”の時に”-1”が返ってくるのでしょうか?
また、どうやったら、
”FFFF”から”65535”が得られるのでしょうか?

教えてください。
よろしくお願いします。

Aベストアンサー

VAL関数
指定した文字列に含まれる数値を適切なデータ型に変換して返します。

FFFFは、INT型で扱える最大値なのでINT型と判定されます。
cint("&H"+"FFFF")だと、-1が返ります。
FFFFFは、INTの扱える値を超えたのでLONG型で判定される為に1048575と言う結果になるのです。
では、なぜマイナスになるのか?
FFFFを2進数で表すと以下のようになりますね。
11111111 11111111 11111111 11111111
↑先頭の1バイト目が1だとマイナスとして扱われます。

以上です。

QLPCWSTRとchar

質問なのです・・・

現在、私は[Visual Stdio.Net 2005]を使って、C++のプログラミングをしようと思いまして、今日参考書を見てやってみたのですが、

charの配列を使って、文字列を格納しそれを使おうとしたら、LPCWSTRのキャストが必要というエラーがでました。
参考書だと普通に通るらしいのですが・・・Visual Stdio.Net 2003と2005の違いなのでしょか?わかる方教えていただけませんでしょうか??

Aベストアンサー

補足です。
2005デフォルトのUNICODEを変更する方法は
プロジェクト->プロパティ->構成プロパティ->全般 の中にある
文字セットを[Unicode 文字セットを使用する]から[マルチバイト文字セットを使用する]
に変更することで可能です。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

QMSFlexGridとDataGridの違いについて

VBの勉強をしております。
WindowsXP、VB6.0です。

標記の件について質問させてください。
MSFlexGridは、グリッドの結合や色を付けたりするのに適している。
DataGridはエクセルのように、直接グリッド内を編集できるが、結合は無理で、色付けの設定はグリッド単位では指定できない。

2つのグリッドのどちらを使えば良いのか分からず、自分で調べてみた所、以上のような違いがあるのでは、という所までは分かりました。

行いたい処理は、
・ファイルからデータを取り出し、グリッドへ表示。データの追加、修正、削除を行い、ファイルへ保存する。
機能として、検索とソートを行える。
また、データをクリックした際に、セルではなく、行全体の色を変更し、「行が選択されている」という見た目にしたい。

以上のような考えがあるのですが、実装が簡単なのはどちらのグリッドなのでしょうか?
また、他に上記のような処理が可能なコントロールがあれば教えていただけないでしょうか?

以上、初心者なもので、文章が理解しづらいかもしれないですが、よろしくお願いいたします。

VBの勉強をしております。
WindowsXP、VB6.0です。

標記の件について質問させてください。
MSFlexGridは、グリッドの結合や色を付けたりするのに適している。
DataGridはエクセルのように、直接グリッド内を編集できるが、結合は無理で、色付けの設定はグリッド単位では指定できない。

2つのグリッドのどちらを使えば良いのか分からず、自分で調べてみた所、以上のような違いがあるのでは、という所までは分かりました。

行いたい処理は、
・ファイルからデータを取り出し、グリッドへ表示。デー...続きを読む

Aベストアンサー

こういうコントロールは
(1)officeやVBなど言語に付属しているもの
MSFlexGrid、DataGridなど
(2)コントロールなど、開発者・プロ向けの部品を作っている専門業者が、市販しているもの
一例
http://www.componentsource.co.jp/features/spreadsheet/index.html
http://www.xlsoft.com/jp/products/SSG/product.html
とあります。一般には(2)はフリーは少なく、価格は高価と思います
の2つのタイプが有ることを念頭にGoogleででも照会してみて、読んだらどうですか。
ーー
また質問者の課題は、スプレッドシート型で有ると思います。
一例
「スプレッドシート コントロール」でGoogleで照会
ーー
(1)はWEBページ用には
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100.html
の「ユーザーフォームにワークシートを表示させる」
などが有るようです。
エクセルを使うケースも有るのかもしれません。
ーー
>VBの勉強をしております。
もし始めて間もないのなら、複雑な課題を早くから良くやりますね。

こういうコントロールは
(1)officeやVBなど言語に付属しているもの
MSFlexGrid、DataGridなど
(2)コントロールなど、開発者・プロ向けの部品を作っている専門業者が、市販しているもの
一例
http://www.componentsource.co.jp/features/spreadsheet/index.html
http://www.xlsoft.com/jp/products/SSG/product.html
とあります。一般には(2)はフリーは少なく、価格は高価と思います
の2つのタイプが有ることを念頭にGoogleででも照会してみて、読んだらどうですか。
ーー
また質問者の課題は...続きを読む

QVBの「As String * 128」とは?

VBの「As String * 128」とは?

Visual Basic 2010 Expressでコンソールアプリケーションを作成しています。

OSのヴァージョンを取得する機能を作成したかったので、

http://hanatyan.sakura.ne.jp/vbhlp/Version.htm

を参考にして、OSVERSIONINFOの構造体を定義しました。

しかし
szCSDVersion As String * 128

「* 128」
の部分で、ステートメントの終わりを指定してくださいとエラーが出ます。

「* 128」とは、いったいどういう意味ですか?

また、エラーを無くす方法はありますか?

いろいろ検索しましたが、調べ方が悪いのか、分かりませんでした。

よろしくお願いします。

Aベストアンサー

参考にされたサイトはVB6.0用のソースですね。
VB6.0とVB2010(=VB.NET)は色々な部分が変わってますので、VB.NET用のサンプルを見た方が良いと思います。

http://dobon.net/vb/dotnet/system/osversion.html

ちなみに一応、質問に答えると…

> 「* 128」とは、いったいどういう意味ですか?

VB6.0(VB2010の5世代前のバージョン?)で固定長文字列を表す定義です。
* 128と記述すると128文字以上の文字列を入れても自動的に128文字でカットされます。

> また、エラーを無くす方法はありますか?

VB2010(=VB.NET)では以下のように記述します。
<VBFixedStringAttribute(128)> Private szCSDVersion As String

QSELECT文で、指定カラム以外の全カラムを一括指定って可能でしょうか

SELECT文で、指定カラム以外の全カラムを一括指定って可能でしょうか?
MYSQLサーバのバージョンは5.0.77です。

下記のように「*」を使用して指定テーブルの全カラムを表示する方法がありますが、
SELECT TableName.* FROM TableName

上記の逆で、指定テーブルの指定カラム以外の全カラムを一括指定って可能でしょうか?
例えば下記のような「^」みたいな、又は同等な書き方があれば良いなと思ってまして。
SELECT TableName.^ColumnName1 FROM TableName

ちなみに、下記のように一つ一つ表示したいカラムを指定する方法以外です。
SELECT TableName.ColumnName2 , TableName.ColumnName3 FROM TableName

よろしくお願いします。

Aベストアンサー

ない。
SQL文でそんなことをするより、メソッドとして作ればいいんじゃないですか。
だいたい、それ以外のカラムの数がわからないし、並びも不明だし。

#1に方と同じで
SELECT * from xxxx
なんてのは正気の人間は書きません。
カラムの数も位置も属性もわからないSQL文の結果をどうやって扱うのか。


人気Q&Aランキング