DateAdd関数ですが、コンパイルすると、「error C2065: 'DateAdd' : 定義されていない識別子です。」
と出ますが、ヘルプにも関数として堂々と載っているので、自分にはなぜ定義されていないかわかりません。
どなたかご存知の方、教えてください。

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

A 回答 (2件)

こんにちは。

itohhといいます。

やっぱり、VBでしたか!(^^;

VC++の場合は、CTimeクラス、CTimeSpanクラスを使います。

例。
CTime Date1(2001, 1, 1, 0, 0, 0); // 2001年7月3日
CTimeSpan Date2(0, 1, 0, 0, 0, 0); // 1ヶ月

CTime Date = Date1 + Date2; // 2001年8月3日

たぶん、これでOKだと思います。
詳細は、MSDNライブラリーで確認してください。
    • good
    • 0

こんにちは。

itohhといいます。

エラーのあったコードを見せていただかないと、答えられませんよ。

それから、VBじゃないですよね?VC++なんですよね?
VC++にDateAdd関数なんてありましたっけ?(勘違いならすみません)

この回答への補足

itohhさん返信いただき、ありがとうございます。
わたくしはどうやらVBの関数を見ていたようです。すみませんでした。
下のようなコードを書いておりました。

void main(){
DATE date;
date = DateAdd("m", 1, "31-Jan-95");



return;
}
こんな感じです

VC++での、これと似たような関数を調べるには、どのようにすればよいですか?
もしご存知でしたら、教えてください。

補足日時:2001/07/03 17:01
    • good
    • 0

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

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

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

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

Qバックカメラをつけたいのですが

バックカメラをつけたいのですが、どれかわかりません。ナビはADDZESTのMAX420Vで、チューナーはADDZESTのTTX760です。よろしくお願いします。

Aベストアンサー

これが合うと思うのですが、在庫少ないようです。
http://addzest-live.ashleyassociates.co.jp/ADDZEST_DYNAMIC/index.cfm?fuseaction=products.details&maincat=navi&subcat=accessory_nv&model_no=CC2010AA

新品はもう無いかもしれません。

QC2065: 'EnumDisplayDevices' : 定義されていない識別子です。

初歩的な質問で申し訳ないのですが、
EnumDisplayDevicesを使用したいのですが、タイトルのエラーになってしまいます。
一応、ヘルプを見て、winuser.hは、インクルードしています。
#include <winuser.h>
何がいけないのでしょうか?
開発環境は、VC6.0SP6です。

Aベストアンサー

 こんにちは。

 私が普段使用しているのがVC60(SP5だったっけ?)です。PlatformSDKSP1を入れているので、普通に使えました。
 以下をダウンロードした方が良いと思います。
 http://www.microsoft.com/downloads/details.aspx?familyid=D8EECD75-1FC4-49E5-BC66-9DA2B03D9B92&displaylang=en


 手動で動かすなら以下参考程度に。

#include<windows.h>
#include<stdio.h>

#ifdef UNICODE
LPCSTR PSZFUNNAME = "EnumDisplayDevicesW";
#else
LPCSTR PSZFUNNAME = "EnumDisplayDevicesA";
#endif

typedef BOOL(WINAPI* PFNENUMDISPLAYDRIVERS)(PVOID Unused, DWORD iDevNum, PDISPLAY_DEVICE lpDisplayDevice, DWORD dwFlags);

int main(void)
{
HMODULE hModule = ::LoadLibrary( "user32.dll");
if(hModule == NULL)
{
::MessageBox( NULL, "user32.dllが見つかりません", "エラー", MB_OK );
}

PFNENUMDISPLAYDRIVERS pfnEnumDisplayDrivers = (PFNENUMDISPLAYDRIVERS)::GetProcAddress(hModule, PSZFUNNAME);

if(pfnEnumDisplayDrivers == NULL)
{
::MessageBox( NULL, "関数が見つかりません", "エラー", MB_OK );
}

DISPLAY_DEVICE dispDevice = {sizeof(dispDevice)};
DWORD nDevNum = 0;
pfnEnumDisplayDrivers(0, nDevNum, &dispDevice, 0);
::FreeLibrary(hModule);

::printf("%s\n", dispDevice.DeviceName);
::printf("%s\n", dispDevice.DeviceString);

return 0;
}

 こんにちは。

 私が普段使用しているのがVC60(SP5だったっけ?)です。PlatformSDKSP1を入れているので、普通に使えました。
 以下をダウンロードした方が良いと思います。
 http://www.microsoft.com/downloads/details.aspx?familyid=D8EECD75-1FC4-49E5-BC66-9DA2B03D9B92&displaylang=en


 手動で動かすなら以下参考程度に。

#include<windows.h>
#include<stdio.h>

#ifdef UNICODE
LPCSTR PSZFUNNAME = "EnumDisplayDevicesW";
#else
LPCSTR PSZFUNNAME = "EnumDisplayDevicesA";
...続きを読む

Qバックカメラについて

さきほども質問させていただいた者です。たびたび申し訳ありません。
NVS630VDというADDZESTのDVDナビがついていて、バックカメラ入力端子装備となっているのですが、どんなバックカメラを付けても大丈夫なのでしょうか?イエローハットのFM-132BCは評判がよいようなのですが…
あとFM-132BCにはバックギア連動があるようなのですが、MT車でもそれは可能なのでしょうか?それができればばナビも同イエローハットのFM-391TV7に変えようかなと考えています。

Aベストアンサー

私はレガシーのワゴンに乗ってます。こないだ2回目の車検(ディーラー車検)を済ませた所ですが、テレビの映る純正ナビ(私のはパナソニック)ならスバルディーラーで2万3千円でバックカメラつけてくれます。チューナー無しのタイプだとチューナー代金が別にかかります。
わざわざバックカメラ入力端子装備と書いてあるならカー用品店で売ってるたいがいのものが装着可能でしょう。マニュアルでもリアに入れればバックランプが点灯するのでそこに「バックに入れた」という信号をもらう線をつなぐ事になります。(簡単です)なにもナビまで替えなくても..... ま、有り余るお金の使い道に困ってるのであればそれもまたいいかもですが...

Qerror C2065: error C2057: が出てしまいます。

VC++6.0 ダイアログベースです。

自動で作られたダイアログのヘッダファイルを
自作で作ったクラスのヘッダファイルでインクルードした所
下記のようなエラーが出てしまいました。
  
error C2065: 'IDD_MY_DIALOG' : 定義されていない識別子です。
error C2057: 定数式が必要です。
  
まだ自作で作ったクラスはクラスになる前のインクルードのみ書かれた
状態ですが・・・。
    
//自作する予定のヘッダファイル(まだインクルードのみ)
#pragma once
#include "DLGTEST.h"//自動で作られたダイアログ

//自作のファイル(まだインクルードのみ)
#include "stdafx.h"
#include "gakusei.h"
  
自動で作られたファイルをインクルードすることは出来ないのでしょうか?
もしインクルードできるならどのようにしたらインクルードできるのでしょうか?
オンラインマニュアルで調べたのですが、良くわかりませんでした。

/**オンラインマニュアルより、解決方法**/  
stdafx.h からの VC_EXTRALEAN 行を定義する 1 つソリューションが#を削除できます。
これは、通信とレジストリとほかのエリアの MFC によってプロジェクトで直接が使用されない Win32 API を保持します。
含められない代替は、#のセットでの行が「#が VC_EXTRALEAN を定義するのを」置き換えるために、
上記で一覧された行を定義しこと、そしてハードウェアがそれその#が定義する削除によって選択的に登録されこと、です。
たとえば 通信 API が呼び出される場合、#がすべて上記で stdafx.h に「#が NOCOMM を定義すると、」行の以外、
一覧された行を定義するのを持つ可能性があります。

VC++6.0 ダイアログベースです。

自動で作られたダイアログのヘッダファイルを
自作で作ったクラスのヘッダファイルでインクルードした所
下記のようなエラーが出てしまいました。
  
error C2065: 'IDD_MY_DIALOG' : 定義されていない識別子です。
error C2057: 定数式が必要です。
  
まだ自作で作ったクラスはクラスになる前のインクルードのみ書かれた
状態ですが・・・。
    
//自作する予定のヘッダファイル(まだインクルードのみ)
#pragma once
#include "DLGTEST.h"//自動で作...続きを読む

Aベストアンサー

#include "resource.h"
を作られたファイルに書けば大丈夫です。
リソースIDは上記ファイルに書かれています。

Qin_addrのs_addr?

struct in_addr A;
(struct in_addr)型のAがありまして、Aにデータを代入するとき、よく
A.s_addr = ?????;
というように、「s_addr」というメンバにアクセスしてるサンプルをよく見かけますが、MSDNライブラリによると、

typedef struct in_addr {
union {
struct {
u_char s_b1,s_b2,s_b3,s_b4;
} S_un_b;
struct {
u_short s_w1,s_w2;
} S_un_w;
u_long S_addr;
} S_un;
} in_addr;

となっていて、「s_addr」のメンバはどこにもないんですよね。。
これはどういうことなんでしょう。
ちなみに自分の発想でアクセスするとしたら、例えばu_longとしてだったら、
A.S_un.S_addr
というようなものしか思いつきません。

あと、ネットワークプログラミング初心者の自分にもわかるような、WinSockについてやさしく、しかもくわしいサイトやおすすめの書籍がありましたら、是非とも教えてください。

struct in_addr A;
(struct in_addr)型のAがありまして、Aにデータを代入するとき、よく
A.s_addr = ?????;
というように、「s_addr」というメンバにアクセスしてるサンプルをよく見かけますが、MSDNライブラリによると、

typedef struct in_addr {
union {
struct {
u_char s_b1,s_b2,s_b3,s_b4;
} S_un_b;
struct {
u_short s_w1,s_w2;
} S_un_w;
u_long S_addr;
} S_un;
} in_addr;

となっていて、「s_addr」のメンバはどこにもないんですよね。。
こ...続きを読む

Aベストアンサー

bcc32のwinsonk.hをみたら

#define s_addr S_un.S_addr

のようになっていました。
A.S_un.S_addr
って打つのが面倒くさいってことでしょうね。

QDirectXでのゲーム作り error C2065: 'MsgProc'の解決法

DirectXについて学びたくなり「15歳から始めるDirectX9 3Dゲームプログラミング」という本を使って勉強しています。
しかしウインドウを作り×ボタンを押したら終了というプログラムの所でエラーがでています。
どうかエラーの原因を教えてください。

#include<windows.h>
#include<tchar.h>

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPInst,LPSTR lpCmd, int nCmd){

    WNDCLASSEX wc = {sizeof  (WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L,hInst,NULL,NULL,NULL,NULL,_T("My Window"),NULL};
    RegisterClassEx(&wc);

    HWND hWnd = CreateWindow(_T("BUTTON"),_T("ウインド名"),WS_OVERLAPPEDWINDOW,100,100,300,300,NULL,NULL,hInst,NULL);
    ShowWindow(hWnd,SW_SHOWDEFAULT);

    MSG msg;
    ZeroMemory(&msg,sizeof(msg));
    while(msg.message!=WM_QUIT){
        if(PeekMessage(&msg,NULL,0L,0L,PM_REMOVE)){
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
    UnregisterClass(_T("My Window"),hInst);
    return 0;
}

エラー内容は
: error C2065: 'MsgProc' : 定義されていない識別子です。
です。

環境は
Microsoft Visual Studio 8
Microsoft DirectX SDK (March 2008)
で、環境設定はきちんとできていると思います。
どうかお願いします。

DirectXについて学びたくなり「15歳から始めるDirectX9 3Dゲームプログラミング」という本を使って勉強しています。
しかしウインドウを作り×ボタンを押したら終了というプログラムの所でエラーがでています。
どうかエラーの原因を教えてください。

#include<windows.h>
#include<tchar.h>

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPInst,LPSTR lpCmd, int nCmd){

    WNDCLASSEX wc = {sizeof  (WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L,hInst,NULL,NULL,NULL,NULL,_T("My Window"),NUL...続きを読む

Aベストアンサー

同じ本使って勉強してます。んで、これ前のページ(P87)でMsgProcのコード載ってますよね。これを加えないとだめです。

LRESULT WINAPI MsgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}

Qadd9のギターコードの押さえ方

john lennonのwar is overでadd9というコードとaadd9というコードがあったのですが、add9の押さえ方ってどうやればいいんですか?

Add9とAadd9は別物ですよね?

御回答よろしくお願いします。。

Aベストアンサー

>add9というコードとaadd9というコードがあったのですが、add9の押さえ方ってどうやればいいんですか?

英語の「add」というのは、日本語で「加える」、「足す」という意味です。
「add9」とは、「9番目の音を加える」という意味ですから、「Aadd9」というのは、「A」コードに、Aから数えて9番目の音、すなわち「B」の音を加えたコードということになります。
第一弦から、0-0-2-2-0-×です。

「add9」というコードは存在しません。
「9番目の音を加える」というだけでは何のコードに何の音を加えてよいのかわかりません。
add9コードは必ずその前に大文字の英文字があるはずですので、「add9」は、ミスプリントか、その前にすでに何かのコードが鳴っていて、「add9」と書かれた場所で、更に9番目の音を加えるとう可能性があります。なお、9番目の音というのは、2番目の音と同じです。

QObjective-c stringWithContentsOfFile:encoding:error: について

Mac OS 10.5を使ってます。

stringWithContentsOfFile:encoding:error: は、どのサイトを読んでも、Mac OS 10.4以降は、使えないようなことを書いてありますが、代わりに推奨されるメソッドはありますか?

ちなみに、cocoaアプリでは動きますが、コマンドラインではこけてしまいます。

コマンドラインは、GUIなしで、main()から呼び出しています。

Aベストアンサー

>当方で、コードを差し替えてみたのですが、warningがとれず調べてみました。

すみません、私もミスってました。
encodingに定数を渡していたので、名前が似ている「+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error」と取り違えてしまいました。
無駄な調べものをさせてしまいました。お詫びします。


気を取り直して^^;
改めて、ワーニングについて補足させて下さい。
xcode_15 さんもお気づきの通り、NSUTF8StringEncodingは(変数ではなく)定数です。
メソッドが要求しているのはポインタなので、変数のアドレスを渡す必要があります。

従って、以下の様にすれば動作すると思います。
NSStringEncoding encoding; // エンコーディングを返してもらうための変数を定義
lineData_ = [NSString stringWithContentsOfFile:fullPathStr
usedEncoding:&encoding // 変数のアドレスを渡す。変数にはエンコーディングの値が返ってくる
error:&error // こっちは、ポインタ変数のアドレスを渡す。変数にはポインタの値となるアドレスが返ってくる
];

今回もコンパイルチェックしてないので、ミスってるかもしれないですが、その前提でご容赦ください。


蛇足ですが、コードを見ていて気になったところがありました。
>NSArray *lines = [[NSString stringWithContentsOfFile:fullPathStr]
componentsSeparatedByString:@"\n"];
>NSLog(@"lines = %@\n", lines);

%@に対してNSArrayのインスタンスを渡していますが、意図通りですか?(その下のNSEnumeratorも)

>当方で、コードを差し替えてみたのですが、warningがとれず調べてみました。

すみません、私もミスってました。
encodingに定数を渡していたので、名前が似ている「+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error」と取り違えてしまいました。
無駄な調べものをさせてしまいました。お詫びします。


気を取り直して^^;
改めて、ワーニングについて補足させて下さい。
xcode_15 さんもお気づきの通り、NSUTF8StringEncodingは(変数では...続きを読む

Qstaticではないメソッドadd(Comp・・・

コンパイルエラーが出ました。
かたほうのソース”A”では、add(p)で通るんですが、もう一方のソース”At”は、通りませんなぜでしょうか?
教えて下さい

↓”A”(通るほう)
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.border.LineBorder;
import java.awt.*;

public class A extends JFrame implements ActionListener {


public static void main(String args[]) {

A a = new A();


a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a.setBounds(200,200,400,200);

JMenuBar menubar = new JMenuBar();

LineBorder border = new LineBorder(Color.black,2, true);
menubar.setBorder(border);

JMenu menu1 = new JMenu("ファイル");
JMenu menu2 = new JMenu("エディット");
JMenu menu3 = new JMenu("編集");
JMenu menu4 = new JMenu("ヘルプ");

menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menubar.add(menu4);

JMenuItem menuitem1 = new JMenuItem("新しく作る");
JMenuItem menuitem2 = new JMenuItem("続きから作る");
JMenuItem menuitem3 = new JMenuItem("ヘルプの表示");

menu1.add(menuitem1);
menu1.add(menuitem2);
menu4.add(menuitem3);

a.setJMenuBar(menubar);
a.setVisible(true);
}

A() {
super("A");

JLabel l = new JLabel("");

JButton b = new JButton("PUSH");
b.addActionListener(this);

JPanel p = new JPanel();
p.setBackground(Color.green);
p.add(b);
p.add(l);
add(p);       ←ここ
}


public void actionPerformed(ActionEvent e) {
System.out.println("A");

}
}

___________________________________________________________________________________________________________________________________________________

↓”At”
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class At extends JFrame {
public static void main(String args[]) {

At at = new At();

at.setBounds(200,200,400,200);
at.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
at.setVisible(true);

JButton b1 = new JButton("JButton1");
JButton b2 = new JButton("JButton2");
JButton b3 = new JButton("JButton3");

JPanel p = new JPanel();
p.setBackground(Color.red);



b1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e) {
JLabel l = new JLabel("JBUTTON!1");
}
}
);
p.add(b1);
p.add(b2);
p.add(b3);
add(p);         ←ここ
}
}

コンパイルエラーが出ました。
かたほうのソース”A”では、add(p)で通るんですが、もう一方のソース”At”は、通りませんなぜでしょうか?
教えて下さい

↓”A”(通るほう)
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.border.LineBorder;
import java.awt.*;

public class A extends JFrame implements ActionListener {


public static void main(String args[]) {

A a = new A();


a.setDe...続きを読む

Aベストアンサー

インスタンスメソッドとかクラスメソッド(staticメソッド)って分かりますか?

エラーメッセージにあるとおりadd(p)はstaticメソッドではなくてインスタンスメソッドなので、呼び出すためには、どのオブジェクトに対してメソッドを実行するのか(この場合、どのオブジェクトにpを追加するのか)という情報が必要です。これがANo.1さんが書いている「対象のオブジェクト」です。

コンパイルが通らないほうはstaticメソッドであるmain()の中にadd(p);を書いているので、どのオブジェクトに対してadd()するのかの情報が不足しています。一つ前の行と同じように、obj.add(p);のように書くことで対象のオブジェクトが何なのかを示してあげる必要があります。objの部分は質問者さんが適切に変更して下さい。どのオブジェクトに対してadd(p)を実行したいのかは質問者さんにしか分からないので(十中八九、atに代入されているオブジェクトなんだろうなとは思いますが)。

コンパイルが通るほうはなぜadd(p)だけでOKなのかというと、クラスAのコンストラクタの中に書かれているからです。その場合、対象のオブジェクトは「コンストラクタの呼び出しで生成されたAのオブジェクト」です。

インスタンスメソッドとかクラスメソッド(staticメソッド)って分かりますか?

エラーメッセージにあるとおりadd(p)はstaticメソッドではなくてインスタンスメソッドなので、呼び出すためには、どのオブジェクトに対してメソッドを実行するのか(この場合、どのオブジェクトにpを追加するのか)という情報が必要です。これがANo.1さんが書いている「対象のオブジェクト」です。

コンパイルが通らないほうはstaticメソッドであるmain()の中にadd(p);を書いているので、どのオブジェクトに対してadd()するのかの情報...続きを読む

Q関数の実体定義にヘッダファイルの2重定義防止方法が効かない?

いつもお世話になっています。
MFCでCプログラミングをしています。

ヘッダファイルの2重定義防止のために、
ヘッダファイル全体を下記のように
囲みました。
<aaa.h>
#ifndef AAA
#define AAA
#define PI 3.141592
void Func();
int wa(int a, int b){
return a+b;
}
#endif

ビルドしたところ、
関数宣言(Func)や#define部分(PI)については、
2重定義が防止されているようなのですが、
関数の実体部分(関数wa)については、
2重定義防止機能が働かず、
***.obj : error LNK2005:
"int __cdecl wa(int a, int b)"
は既に ***.obj で定義されています。
というリンクエラーが表示されます。

関数の種類や
ヘッダファイル内の宣言の順番を
いろいろ変えてみたのですが同じ結果でした。

ここで、このヘッダファイルの先頭に
#pragma onceを使用すると
このリンクエラーは回避されるのですが、
他コンパイラとの互換性の観点から、
#pragma once以外の方法で実現する必要があるので、
困っています。

URLを検索してみたのですが、
このような特殊な場合について記述されているものは
見つけられませんでした。
どなたか解決法又はヒントをご教示頂ければ
ありがたいです。
よろしくお願いします。

いつもお世話になっています。
MFCでCプログラミングをしています。

ヘッダファイルの2重定義防止のために、
ヘッダファイル全体を下記のように
囲みました。
<aaa.h>
#ifndef AAA
#define AAA
#define PI 3.141592
void Func();
int wa(int a, int b){
return a+b;
}
#endif

ビルドしたところ、
関数宣言(Func)や#define部分(PI)については、
2重定義が防止されているようなのですが、
関数の実体部分(関数wa)については、
2重定義防止機能が働かず、
***.obj : error LNK20...続きを読む

Aベストアンサー

二重インクルードは防止できています。ただし、あくまで1つのコンパイル単位の中での話です。エラー内容から察すると、2つ以上のソースファイルでaaa.hをインクルードしていますね?コンパイル時点ではエラーにはならずに複数のobjファイルが生成されますが、リンク時にエラーが発生します。これは、リンク実行時に関数waの定義が複数のモジュールで発見されるためです。

このようなエラーを防ぐため、通常、ヘッダファイルで関数の定義は行わず、その代わりに

extern int wa(int a, int b);

のように宣言だけを記述します。関数定義はどこかのソースファイルで1回だけ行います。


人気Q&Aランキング

おすすめ情報