• ベストアンサー

VB6のAscB関数をC++で書き換えたい

今VB6のコードをC++に書き換えているのですが、AscB関数を使っている部分をどうC++のコードに書き換えてよいかわかりません。教えてください。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>> 「ffffff82」と出力されてしまいます。 char型は符号付きなので0x82はマイナス値となります。 それをint型に代入すると0xffffff82となるのは当然の事です。 >> int AscB(const char *str){ >>  return str[0]; >> } ↓ int AscB(const char *str){  return (unsigned char)str[0]; } で、うまくいきませんか?

kokumura
質問者

お礼

うまくいきました。どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.1

それぞれの関数の意味を調べずに書き換えようとしているのでしょうか?それは無理です。 一応書いておくと、文字列の先頭バイトの値を整数値で表現したものを返します。

kokumura
質問者

補足

Shift_JISで"82A0"の"あ"の場合、"82"を返す、というのであっているでしょうか? int AscB(const char *str){ return str[0]; } 関数を作るならこんな感じでいいような気がしたんですが、 cout << hex << AscB("あ") << endl; とすると、「ffffff82」と出力されてしまいます。「82」を得るにはどうしたらよいのか教えてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB6.0の関数をC++で使いたい

    いまVB6.0のRATE関数をC++で使いたいと考えています。 自分なりに調べてVB6.0でActiveX DLLを作ってみたりしたのですができませんでした。 また、RATE関数と同じ動きをするC++の関数も見当たらず困っています。 どなたかVB6.0の関数をC++で使えるようにする方法か、 RATE関数と同じ動きをするC++の関数をご存知のかたがいましたら教えてください。 宜しくお願いします。

  • VBとC#

    よくある質問とは思いますが、VBとC#は何が違うんでしょうか? コードの記述法が少し違うだけで、できる事は同じのように思えます。 それでもマイクロソフトがVBとC#を分けてリリースするということは、何か理由があるのでは…。 「コレを作るならVBよりC#を使ったほうががいい!」というようなものはあるのでしょうか?

  • VB 関数

    初めまして。 VB初心者なので,簡単な質問なのかしれませんが御願いします。 C言語で,   int      main        (void) 戻り値の型    関数名      戻り値なし と書きますが,これと同じ意味を持つプログラムをVBで書くとどのようになりますか? 関数の作り方がまだわかってないので教えていただけますか? 宜しく御願いします。 

  • VB6.0のString関数に代わるVB2008のそれは?

    2009年1月27日にVB 2008Expressをダウンロードしたばかりの初学者です。 ですから、色々とわからないことだらけです。 で、今回は VB6.0のString関数に代わるVB2008のそれ。 ? String(12, "*") ************ Function Strings(ByVal C As Char, ByVal L As Integer) As String   Return Space(L).Replace(" ", C) End Function 少しは探しましたが、適当なのがなくてStrings関数を作成してしまいました。 2週間程度の初学者。 しかも、文字列関連のヘルプは昨日に初めて紐解いたばかり。 ですから、「適当なのがない」との判断はかなり怪しいものです。 そこで、「VB6.0のString関数に代わるVB2008のそれは、これですよ!」という回答をお願いします。

  • VB6.0とC言語

    VB6.0とC言語 見習い中の見習いプログラマーです。 VB.NETのコードを読めるくらいしか知らないのですが、 外注のVB6.0とC言語を使用した仕事をしています。 プログラムの世界は、こういうものなのですよね。。。 自分の知識の無さに、気持ちがめいってます。。。

  • VBのBooleanはCではどんな方でしょうか? DLL

    元々、VB6のソースをCに書き直している最中ですが、 VBでintegerは Cではshortでよいのですが、VBでBooleanはCではどのように記述したらよいのでしょうか? 確かCは真が-1で偽が0だったと思いますが、それならば shortで定義して・・・ でうまくいくのでしょうか? VBから呼び出すCの関数のDLLを書いた事のある方、教えていただけますか? また、今の時代、DLLは古いでしょうか? だいぶ前のソースをいじくっております。

  • C++の関数をCで呼ぶには??

    C++の関数をCで呼ぶには、「extern C」を使用することが有名だと思いますが、これだとC++で記述したソースコードにextern Cを追加することにあると思います。 では、C++のほうはまったく手をつけず、C++の関数をCで呼ぶことは可能なのでしょうか? 知っている方がいましたらよろしくお願い致します。

  • VB.NETのモジュールで定義した関数のように、どこからでも呼び出せる 関数は、C#でどのように記述するのでしょうか?

    C#2005で、どこからでも呼べる関数ができないか悩んでいます。 昔、関数のプログラムを作っていた頃から、進歩せず オブジェクト思考的なプログラミングが苦手で、 エラー 名前 '***関数名***' は現在のコンテキスト内に存在しません。 というエラーがたくさん出て、苦しんでおります。 VB.NETのモジュールで定義した関数のように、どこからでも呼び出せる 関数は、C#でどのように記述するのでしょうか? クラスが基本という方針はわかりますが、まず手がかりが欲しいです。

  • C言語からVBに

    質問させていただきます。 今まで、VC6.0で作成した関数をVB6.0又はVB.NETで作り変えます。 そこで、呼び出し元(VC6.0:引数あり)から呼び出し先(VB6.0又はVB.NET)の関数を呼び出すには、どうしたらいいでしょうか? 現状:呼び出し元 VC6.0     呼び出し先 VC6.0 今回:呼び出し元 VC6.0    呼び出し先 VB6.0(ソースのみ:フォームなし) 宜しくお願いします。

  • C#のコードをVBに置き換えたい

    C#の関数の引数に、(object sender, EventArgs e) というのがあると思います。 VBでこれと同じ意味を持つ引数というのはあるのでしょうか? ご存知の方、お願いします。

このQ&Aのポイント
  • ThinkPad X1 Carbon 6ThのHDDから起動できなくなった場合のOS再インストール方法を教えてください
  • HDDからの起動ができず、内蔵のM2 SSDも認識されていない状態です。M2 SSDが故障している可能性があります。
  • Windowsの回復ディスクを作成していないため、Windowsの再インストール方法が分かりません。ご教示いただけると助かります。
回答を見る