tettsuのプロフィール
- ベストアンサー数
- 4
- ベストアンサー率
- 30%
- お礼率
- 0%
- 登録日2006/11/14
- C言語で取得した文字列を、C++の文字列として取り扱いたいです。
C言語で取得した文字列を、C++の文字列として取り扱いたいです。 皆さんこんにちは。 C言語で取得したchar型で定義された文字列を、 C++の「std::string」に渡したいと思っております。 どうすればかなうでしょうか? 具体的には次のような内容です。 ■C言語側 ---- char key1 = "deperture"; ---- ■C++側で「key1 = key2」としたいです。 ---- std::string key2 = key1; ---- C言語側で記述されている「key1」の値(deperture)を、 C++ソース内の「key2」に渡したいと思っています。 こうゆう場合、どんな方法をとれば適切でしょうか。 C言語側でのchar型の文字列の値を、 C++側の「std::string」型として C++のソースへ渡す方法が分からないです。 アドバイスいただけるとありがたいです。 簡単な例を頂けると更に大変ありがたいです。 以上どうぞ宜しくお願い致します。
- 【OpenGL ドラッグ&ドロップのやり方教えて下さい】
現在OpenGLでプログラミングをおこなっているのですが、分からないことがあるので教えていただければと思います。 ウィンドウ内に物体を置いて、それをマウスでドラッグ&ドロップのように移動させるプログラムをgltranslateで作ってみたのですが、うまくいきません。 ドラックして移動させるという動作をどの様に実現すればよいのでしょうか?プログラミング初心者なので、わかりやすく教えていただければと思います。 また、参考になるプログラム等あるサイトなどあれば教えてください。宜しくお願いいたします。
- BitBltについて。
どなたか経験のある方、わかる方居られましたら教えてください。 プリンタのデバイスコンテキストからメモリDCに描画してビットマップを作成したいと思っているのですが、プリンタDCからメモリDCへのBitBltがうまくいっていないのか、完成イメージが真っ黒になります。 hMemDC = CreateCompatibleDC(hPrinterDC); hBitmap = CreateCompatibleBitmap(hPrinterDC,lnWidth,lnHeight); Obj = (HBITMAP)SelectObject(hMemDC,hBitmap); iRet = GetDeviceCaps(hMemDC,RASTERCAPS); // iRet の戻り値は 28313(10進)でした。 // コピー iRet = BitBlt(hMemDC,0,0,lnWidth,lnHeight,hPrinterDC,0,0,SRCCOPY); // iRet の戻り値は 1 になってました。 本来は lnHeight の値が BitBlt の戻り値になるのかと思いますがうまくいきません。 hPrinterDC はもともと印刷用の関数で使用しているものなので、そこには問題が無いのではないかと自分では思っていますが、わかる方居られましたら教えていただけませんでしょうか?
- ビットマップの編集について
どなたかビットマップ編集の経験のある方で分かる方おられましたらアドバイス頂きたいと思い書かせていただきます。 デバイスコンテキストからビットマップを作成したいのですが、作成結果が真っ黒なビットマップになります。多分ビットマップ情報がメモリDCに描画できていないまま作成しているという事なのでしょうか? MemDC = CreateCompatibleDC(元DC); ↓ hBitmap = CreateCompatibleBitmap(元DC,Width,LlnHeight); ↓ SelectObject(MemDC ,hBitmap) ↓ GetObject(MemDC ,tpBitmap,(LPSTR)&tpBitmap); ↓ Liret = GetDIBits(元DC, hBitmap, 0, (WORD)tpBmpIH.biHeight,NULL, (LPBITMAPINFO)lpbi, DIB_RGB_COLORS); ↓ Liret = GetDIBits(元DC, hBitmap, 0, (WORD)tpBmpIH.biHeight,(LPSTR)lpbi + (WORD)lpbi->biSize + PaletteSize(lpbi),(LPBITMAPINFO)lpbi, DIB_RGB_COLORS); 関係ありそうな所ははこんな感じで操作してます。 Bitbltがサポートされていない様なので別の方法でメモリDCに転送させなければいけないのでしょうか?
- ビットマップの編集について
どなたかビットマップ編集の経験のある方で分かる方おられましたらアドバイス頂きたいと思い書かせていただきます。 デバイスコンテキストからビットマップを作成したいのですが、作成結果が真っ黒なビットマップになります。多分ビットマップ情報がメモリDCに描画できていないまま作成しているという事なのでしょうか? MemDC = CreateCompatibleDC(元DC); ↓ hBitmap = CreateCompatibleBitmap(元DC,Width,LlnHeight); ↓ SelectObject(MemDC ,hBitmap) ↓ GetObject(MemDC ,tpBitmap,(LPSTR)&tpBitmap); ↓ Liret = GetDIBits(元DC, hBitmap, 0, (WORD)tpBmpIH.biHeight,NULL, (LPBITMAPINFO)lpbi, DIB_RGB_COLORS); ↓ Liret = GetDIBits(元DC, hBitmap, 0, (WORD)tpBmpIH.biHeight,(LPSTR)lpbi + (WORD)lpbi->biSize + PaletteSize(lpbi),(LPBITMAPINFO)lpbi, DIB_RGB_COLORS); 関係ありそうな所ははこんな感じで操作してます。 Bitbltがサポートされていない様なので別の方法でメモリDCに転送させなければいけないのでしょうか?