Quantcast
Channel: OKWAVE 閲覧数の多い質問(C・C++・C#/250)【本日】
Viewing all 50953 articles
Browse latest View live

error LNK2001: 外部シンボル "_main" は未解決です

$
0
0
VisualC++6.0で、新規作成→win32 Dinamic-Link Libraryでプロジェクト を作成し、dllファイルを作っています。 今までは、上手くコンパイル出来て、dllを作れていました。 友人の作ったライブラリにリンクして、ソースファイルで そのライブラリの関数を使って、コンパイルすると、 LIBC.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です。 というエラーが出て困っています。 今、プロジェクトの設定→リンク→アウトプットの エントリポイントシンボルはDllEntryPoint@12となっています。 どうしたら良いでしょうか? どなたかご教授くださると助かります。 ちなみに、ライブラリの関数をコメントにすると、コンパイル出来ます。

win32アプリケーションコンパイル時のエラー

$
0
0
#include <windows.h> int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance , LPSTR lpCmdLine, int cmdShow) { MessageBox(NULL,"この文字が出ます","メッセージ",MB_OK); return 0; } 上記ソースをコンパイル時に以下のエラーが出ます ------ ビルド開始: プロジェクト: kcn01, 構成: Debug Win32 ------ リンクしています... MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 C:\C++練習\kcn01\Debug\kcn01.exe : fatal error LNK1120: 外部参照 1 が未解決です。 ビルドログは "file://c:\C++\kcn01\Debug\BuildLog.htm" に保存されました。 kcn01 - エラー 2、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== 2005とSDKを一緒に使用するにある手順1~5は全て行いました ウィンドウズアプリケーションは普通に動作するのですが 空のプロジェクトにして↑のソースをコンパイルするとエラーが出ます 何か原因がわかる方よろしくお願いします。

linux/module.h インクルードできない

$
0
0
もう自力ではわからず、検索しても解決できなかったので、わかる方、力を貸してください。 まず環境は Ubuntu 12.10 をVirtualBoxで動かしています。 そして、以下のパッケージをインストールしました。 linux-source-3.5.0 linux-header-3.5.0-19-generic その後、以下のソースをコンパイルしようとしました。 1 #include <linux/module.h> /* module 作成には必須 */ 2 #include <linux/kernel.h> /* printk */ 3 4 MODULE_LICENSE( "GPL" ); 5 6 static char* msg = "module [message.o]"; 7 8 9 /* 10 * モジュールの初期処理 11 * insmod 時に呼ばれる 12 */ 13 int 14 init_module( void ) 15 { 16 printk( KERN_INFO "%s : loaded into kernel\n", msg ); 17 18 /* モジュール初期化に成功したので 0 を返す 19 0 以外の値を返せば初期化失敗とみなされモジュールは 20 カーネルには組み込まれない */ 21 return 0; 22 } 23 24 25 /* 26 * モジュールの解放処理 27 * モジュールの参照数が 0 であれば、rmmod 時に呼ばれる 28 */ 29 void 30 cleanup_module( void ) 31 { 32 printk( KERN_INFO "%s : removed from kernel\n", msg ); 33 } 34 35 36 /* End of message.c */ このソース自体はネットで公開されていたもののコピペです。 これを解説を読んで、いざコンパイルというときに、 linux/module.h そのようなファイルやディレクトリはありません 上のエラーが出ます。 でも、/usr/src/linux-source-3.5.0/include/linuxの中に、module.hは確かにありました。 あったのにもかかわらず、そのようなファイルやディレクトリがありませんというのは、いったいどのような原因が考えられるのでしょうか。 自力では解決できなかったので、わかるかた教えてください。

アプリを実行すると、作成者を確認できませんが出る

$
0
0
Visual C++ 2010 expressでアプリを作成しておりますが、実行ファイルを起動すると セキュリティの警告で、Windows7では「このファイルの作成者を確認できません。...」 WindowsXPでは、「発行元を確認できませんでした。」 と、メッセージボックスが出力されます。 これを出さないようにするには、デジタル署名等を付加しないといけないようですが 方法としては、どのような方法があるでしょうか? express版では、だめなのかもしれませんが、、、、、 以上、よろしくお願いいたします。

リトルエンディアン→ビッグエンディアン

$
0
0
(1)リトルエンディアン typedef struct recvData{  int a;  unsigned char b[16]; unsigned char c[8]; unsigned int d[4]; } recvData_t; recvData_t rData; (2)ビッグエンディアン typedef struct sendData{  int a;  unsigned int b[4]; unsigned int c[2]; unsigned int d[4]; } sendData_t; sendData_t sData; 上記のようなリトルエンディアンの構造体の各メンバのデータを、ビッグエンディアンの構造体の各メンバのデータにそれぞれ格納するには どうしたらよいでしょうか?

printfの引数指定でなぜ文字列ポインタがOK?

$
0
0
C言語初心者です。現在入門的書籍の1冊目を読んで勉強中です。VBAは経験あります。 printf関数について質問です。 引数の指定で通常  printf("書式文字列", 変数で値) のようにしていしますよね。  char a = 'A';  printf("%c", a); ←ここで変数aの値の「A」を渡している と理解しています。 上の例で、書式文字列を省略し、  printf(a); だとエラーがでます。 しかし、文字列の場合  char a[] = "ABC";  printf(a); はエラーにならず、「ABC」と出力されます。 さらに、ポインタを使用して  char a[] = "ABC";  char *b = a;  printf(b); もエラーにならず、上と同様に「ABC」と出力されます。 まず、この2つの例で、エラーとならず、書式文字列が省略できているのが不思議です。 これが書式文字列を省略しているわけではないとするならば、 「printf(a)」=「printf(b)」=「printf("ABC")」ということになりますが、 「printf(a)」のaも「printf(b)」のbも"ABC"の先頭のアドレスを示しているんですよね。 ということは、printf関数の引数の指定方法は  printf(書式文字列 または 文字列の先頭アドレス, 変数) というように考えられるのですが、認識があっているでしょうか? そもそも文字列について、VBAでは文字と文字列の区別はなにも意識せずに扱えたのでやや戸惑っているのですが、C言語では文字列の場合は宣言時に  char a[] のように宣言し、あとは先頭のアドレスで文字列を使っていくという感じなのでしょうか? 初心者なもので何が理解できていないのかもよくわからない状況で、質問がわかりづらいかもわかりませんが、よろしくお願いします。

c言語で、繰り返し文の中で、0.01づつ増やすには?

$
0
0
c言語で、繰り返し文の中で、0.01づつ増やすには? c言語で、繰り返し文の中で、0.01づつ増やすにはどうすればよいのでしょうか? 関数F(x)=x3+2x-1 の値でx=0から5まで0.01刻みで増やし、出力させる プログラムを作成せよ。という問題です。 #include <stdio.h> int main() { double i; for(i=0;i<=5;i+=0.01){ printf("%lf",i*i*i+2*i-1); putchar('\n'); } return(0); } で、はじめにi=0なので、はじめは-1のはずですが、なぜか初めの値が11.28…と表示されます。これを0.1刻みで i+=0.1 とすると正常に作動するのですがどうでしょうか? お願いします。

Cygwinでmakeコマンドが使えない(Vista)

$
0
0
今までFedora-Linuxで使っていたプログラムをWindows上で実行するために、VistaにCygwinをインストールし、使い始めていることろです。 Makefileを使いコンパイルをするため [make]や[make -f Makefile]などをコンソールに入力しても、 bash: make: command not found が出てしまいます・・・。これを解決したいのです。 これは、Linux上でいつも行っていた操作と全く同じです。 Cygwin用にMakefileを書き換える必要がある、何かのツールをインストールする必要がある、makeに代わる何かのコマンドが存在する・・・ など、あるのでしょうか?

VC++で音量の調整、ミュートは。

$
0
0
VC++で簡単なプログラムを考えています。 音量をミュートしたり、解除したり、あるいは、前の音量を覚えていて、音量をゼロにして、また、以前の音量に戻したりするものです。 なので、 音量を設定する。 現在の音量を覚える。 音量をミュートする、解除する などの 対応するコマンドを教えてください。

c言語でポインタ変数を用いた配列の反転操作

$
0
0
c言語でポインタ変数を用いた配列の反転操作を行いたいのですが、文字列の反転の仕方が分かりません。流れとしては、文字列の長さを調べてから文字列を反転して表示するという感じです。どうか教えてください。また、その他問題点があればご指摘よろしくお願いします。 #include <stdio.h> int strlength(char *str) { /* 文字列の長さを調べる /* int length = 0; while (*str++ != '\0'){ length++; } return length; } int main(void) { /*配列strSrc[]の文字列を逆にして配列strDst[]に格納する */ char strSrc[] = "reverse this"; char *pC; char strDst[] = "01234567890123456789"; char *pD; int length; printf( "%s\n", strSrc ); /* この部分が分かりません */ printf("%s\n", strDst ) ; return( 0 ); }

関数から配列を返すには?

$
0
0
return で配列を返すにはどうしたらよいのでしょうか。 例えば以下のような場合です。 int main (){ char Value[] = "999"; int a;  a = test(Value);  printf ("%d", a);   } int test(char *Value) { int nVal[255]; ここで nVal に適当な処理をして・・・  return Value; }  int a を配列とかにしてみましたけど、コンパイラが 通りません。 要は配列数値を main で受け取って表示したいのですが、 本日C言語はじめたところなので、教えていただければありががたいです。

作ったプログラミングC何だけど、評価していただけませんが?不足があれば、教えてください!

$
0
0
文字列「abc」の各アルファベットを1文字ずらすと文字列「bcd 」になり、 文字列「nisidate」の各アルファベットを2文字ずらすと文字 列「pkukfcvg」となる。さらに、 文字列「kibishii」の各アルファベットを2文字ずらすと文字 列「mkdkujkk」となる。 このような、任意の文字列の各要素を任意の文字数ずらすプロ グラムを作成する、なお、zを1文字ずらしたとき のアルファベットはaとする。 #include <stdio.h> #include <string.h> int main(void) { char str[27]="abcdefghijklmnopqrstuvwxyz",str1[50], str2[50]; int x,i,j,len; printf("文字列を入力---> "); scanf("%s", str1); printf("何文字ずらすかを入力---> "); scanf("%d",&x); len=strlen(str1); for(i=0;i<len;i++) { for(j=0;j<27;j++) { if(str1[i]=='z') { str2[i]=str[x-1]; } if(!(str1[i]=='z')) { if(str1[i]==str[j]) { str2[i]=str[j+x]; } } } } printf("%d文字ずらした文字列は%sです\n", x, str2); return 0; } よろしくお願いします!!

iPhone アプリ作成 プログラムについて

$
0
0
xcode6を使用してアプリを作成しています。 iPhone がスリープになっているかなど、バックライトの状態を取得するコードや方法はありますか。 いろいろ調べたのですが見つかりませんでした。

C言語初心者の質問失礼します。

$
0
0
C言語初心者の質問失礼します。 プログラムを作って、cygwinでコンパイラしたのですが、以下のようなエラーメッセージが出てしまいました。 expected declaration or statement at end of input どのような意味なのか教えてください。 ばかみたいな質問でごめんなさい…。

C言語の無料コンパイルソフトを探しています。

$
0
0
  Web上でできる、以下を紹介していただいたきました。  http://codepad.org/  パソコンのHDDにセットアップして使用するコンパイルソフトが  無料でインターネットにないか、現在探しています。 http://oshiete.goo.ne.jp/qa/8818120.html  では Visual Studio Express 2013 for Windows Desktop  をインストールしまして、  目的とする「C言語」のコンパイルですが ご紹介していただいた、 http://ateliereclair.blog.fc2.com/blog-entry-51. …  で、   できるか試しました。  その中の手順項目の以下で   (11) 新しい項目の追加ウィンドウで、以下の作業をする。 左側で、インストール済み → Visual C++ → コードを選択。 右側で、C++ ファイル(.cpp) を選択。  とあり   言語選択で 目的とする C言語の選択ができず そこでリタイヤ  しました。  現時点では コンパイルができておりません?  C言語のコンパイルは  Express 2013 for Windows Desktop  では、できないようですが私個人の意見なので、まだわかりません?  その他、C言語のコンパイルするソフトが、フリーでインターネット上に  ないでしょうか?  よろしくお願いします。

構造体のデータを丸ごとコピーしたい

$
0
0
C言語の構造体の勉強をしています。 構造体のデータを丸ごとコピーしたいのですが、今までは下記プログラムの★1の方法で1つ1つやっていました。 しかし変数が増えてきたのでできれば一度にコピーをしたいのですが、★2の方法では場合によってはゴミが含まれてしまいます。 そこで★3の方法で試すと今のところコピーできたのですが、これは安全なのでしょうか? ご存知の方がおられればお願いします。 また、もっといい方法があればご伝授いただけると助かります。 #include <stdio.h> #include <string.h> struct Sample{  int val1;  int val2; }; void test(Sample *p, int num){  Sample d;  switch(num){  case 1: //★1   d.val1 = p->val1;   d.val2 = p->val2;  break;  case 2: //★2   memcpy(&d, p, sizeof(Sample));   break;  case 3: //★3   d = *p;   break;  }  printf("val1:%d, val2:%d\n", d.val1, d.val2); } int main(){  Sample s;  s.val1 = 1;  s.val2 = 2;  test(&s, 1);  return 0; }

VC# コンボボックスの大文字・小文字を区別する

$
0
0
VC# 2005で、以下のようなコードを書くと、大文字・小文字の区別がなく、 1行目で追加したアイテムが選択された状態になってしまいます。 comboBox1.Items.Add("a"); comboBox1.Text = "A"; 大文字・小文字を別として扱うことはできますでしょうか?

Linux バイナリ実行できない "cannot execute binary file”

$
0
0
表記ですが、Linuxサーバーに対して、Windowsクライアントから XWin環境にてユーザー"hoge"でログインを行い、 そのサーバー上でターミナルを立ち上げ /usr/local/gcc_work というフォルダを作り、その中で ---ここからーーー #include <stdio.h> int main(void) { printf("Hello,world\n"); return 1; } ーーーここまでーーー のような、hello.cを作成し、 $ gcc -c hello.c -o hello でバイナリを作成し $ ./hello とすると bash: ./hello: cannot execute binary file とのメッセージが出ます。 パーミッションの問題かと思いましたが、 [hoge@localhost gcc_work]$ ls -l 合計 8 -rwxrwxr-x 1 hoge hoge 876 5月 6 18:14 hello -rwxrwxr-x 1 hoge hoge 83 5月 6 18:13 hello.c のようになっていて、問題なく感じています。 スーパーユーザになって再度コンパイルしても同じでした。 くだらないところで躓いているのかもしれませんが、お気づきあらば 教授願います。

C言語のエラー LNK1120: 外部参照

$
0
0
#include "myhelper.h" #include "mymain_4.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; } .obj : error  LNK2019: 未解決の外部シンボル (?MyMain_4@@YAXXZ) が関数 _WinMain@16 で参照されました。   error LNK1120: 外部参照 1 が未解決です。      .exeファイル この記述の時、こういったエラーに見舞われます。 プログラムの記述でしょうか? ネットで調べ、ファイルの形式をWIN32コンソールアプリケーションに変えても、 エラーが取れませんでした。   何か方法があればと思い質問します。  VC++の2010を使っています。

WaitForSingleObjectの使い方について

$
0
0
こんにちは。 WaitForSingleObjectを使って、スレッドがシグナル状態になるまで待機するために、以下のようにコーディングしました。 WaitForSingleObject( threadHandle, INFINITE ); ところが上記だと、スレッドが正常にシグナル状態にならなかった場合に、永遠に待ち続けフリーズしてしまう可能性があること以下のサイトで知りました。 http://hitokuso.kicks-ass.org/progtips.html#1 while( ::WaitForSingleObject( threadHandle, 50 ) == WAIT_TIMEOUT ) { MSG msg; ::GetMessage( &msg, NULL, 0, 0 ); if( !IsDialogMessage( &msg ) )// ダイアログ内の場合 { ::TranslateMessage( &msg ); ::DispatchMessage( &msg ); } } 上記のようにwhileループで回し、タイムアウトだったらメッセージを処理しているようなのですが、タイムアウト時間として50ミリ秒を指定しているので、一瞬だけ待ってすぐにメッセージ処理を継続しているような気がします。これでは、スレッドがシグナル状態になるまで待たないような気がするのですが… まだまだ知識不足のため、見当違いな疑問を持っているのかもしれませんが、どなたかアドバイス・ご教授をお願いいたします。
Viewing all 50953 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>