職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

標準テンプレートのvectorを使ってLNK1104が出たら

2016年06月30日 | C++
vectorを使ってLNK1104が出たら


【条件】
OS:window10
EID:VS2013のC++


【プログラム】
#include <vector>
#include <iostream>
using namespace std;

int main()
{
vector<int> array; // int型の動的配列
int i;

// 10個の要素を追加していく
for( i = 0; i < 10; ++i )
{
array.push_back( i );
}

// 10個の要素を出力
for( i = 0; i < 10; ++i )
{
cout << array[i] << endl;
}

return 0;
}
上記のプログラムをビルドして「fatal error LNK1104」エラーが出たら、
vector<int> array; // int型の動的配列
array.reserve(1000);// ここで 1000個分の領域を確保←これを加えてみる。
int i;
これでも、だめだったらVS2013を再インストしてください。

【OSを変えた時】
Win7→Win10に変えた時にも、LNK1104エラーが出て、実行ファイル(.exe)が開けなく成るよ。
その時は、再インストールした方が良いよ。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

strcpy関数のビルドエラーについて

2016年06月20日 | Visual Studio 2013
strcpy関数のビルドエラーについて


下記のようにstrcpy関数を使ったプログラムをビルドすると→
「warning C4996: 'strcpy': This function or variable may be unsafe、、、」の様なエラー表示されるので、赤字の部分を追加する

【header.h】
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>

using namespace std;
//Canクラスの宣言
class Car{
private:
int num;
double gas;
char* pName;

public:
Car::Car(char *pN, int n, double g);
~Car();
void show();

};

//Canクラスメンバ関数の定義
Car::Car(char *pN, int n, double g)
{
pName = new char[strlen(pN) + 1];
strcpy(pName, pN);
num = n;
gas = g;
cout << pName << "を作成しました。" << endl;
}
Car::~Car()
{
cout << pName << "を破棄します。" << endl;
delete[] pName;
}
void Car::show()
{
cout << "車のナンバーは" << num << "です。" << endl;
cout << "ガソリン量は" << gas << "です。" << endl;
cout << "名前は" << pName << "です。" << endl;
}
【main.cpp】

#include"Header.h"

//Carクラスの利用
int main()
{
Car car1("mycar", 1234, 25.5);
car1.show();

return 0;

}
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする