• ベストアンサー

64bitのLinuxOSでWinelibを使って64bitのメモリ空間を使えますか?

質問場所が違うかもしれませんが、 Winelibを使って簡単なWin32のAPI関数を含んだコード(MFCなどは含まず)を 64bitのLinuxOS上に移植したいと思います。 このとき、64bitのメモリ空間を使いたいのですが可能でしょうか? 64bitのLinuxOSは具体的にはTurbolinux 8 for AMD64です。 なにか情報があればお教えください。

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

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.1

64bitリニアアドレスを使える64bit版WindowsはWin64 APIを使っています。このWin64、Win32とのコード互換性は確保していますが、バイナリ互換性はありません。 Win32しか使えないWinelibでは、無理でしょう。

motsuan
質問者

お礼

ご回答ありがとうございます。 実はLinuxでプログラミングしたことがないので (裏を返すと、そんなわけで移植が面倒なのでWineを使いたいのですが) Winelibは、XlibかなんかのWin32APIのラッパなのかなと思ったので、単純なAPIであれば、ライブラリをコンパイルすれば可能か(すると、Windows2003じゃなくても 64bitリニアアドレスつかえるじゃない?)と単純におもったのでした。 どうもありがとうございました。 回答がつかないのかとちょっとがっかりしていたのでうれしいです。 調子にのってもう少しあけておきたいと思います。少々お待ちくださいませ。

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

関連するQ&A

  • Win32APIでのメモリ管理について

    C→malloc関数 C++→new演算子 Win32API→GlobalAlloc関数 とWin32APIでのメモリ管理の方法にはいろいろありますが、どれを使うのが一番実用的なのか、どれが一番効率的なのかが知りたいです。 あとWin32APIにはHeapAllocという関数もあるようですが、上記の3つは使わずにこの関数を使用したほうがよいのでしょうか。

  • 64ビットだからでしょうか?

    PC1 WIN7-32ビット CORE i3 2350M 2.3G 4Gメモリ エクスペリンスインデックス4.5 PC2 WIN7-64ビット AMD アスロンtm2 P360 デュアルコア2.3G 4Gメモリ エクスペリンスインデックス4.1 以上のようなPCがあるのですが、、、 TV番組を録画した手持ちのDVDをリッピングしてみたのですが、圧倒的にPC2の方が所要時間が短いのです。 3倍くらいの差があります。 私的にはPC1のほうが断然速いだろうと予測していただけに意外です。 何故でしょうか? やはりPC2が64ビットだからでしょうか? がしかし、リッピングソフトは32ビットソフトです。 益々不思議です。 識者の皆様のご意見をお願い致します。

  • メモリを少ししか使ってないのに90%くらいになる

    タスクマネージャーから各プロセスのメモリ使用量を計算すると600Mほど使っていないのに90%くらい使っていることになっています。 具体的に言うと4Gメモリがあるんですが、パフォーマンスでみると3.6G使っていることになっています。でもプロセスなどでみるて600Mほどしか使っていません。 どういうことでしょうか? win10 64bit proです。

  • PCのメモリについて

    メモリ使用率が常に80%を超えているのですが原因が分かりません 普段PCはWebの閲覧くらいでしか使いません Win11(Home) 22H2 64ビット  8GB  AMD Ryzen3 3250U with Radeon Graphics 2.6GHz

  • exeファイルがあるディレクトリ

    Win32 API関数で GetCurrentDirectory関数は知ってるのですが、これは、プログラムを呼び出した場所の場所がわかるのみです。 で、exeファイルがある場所を知りたいのですが、そのための関数ってありますか?(あるはず!?) ANSIでもAPIでもよいので。

  • VC++ .NETでWin32 APIの関数を呼び出すことは可能なのでしょうか?

    Visual C++ 2003 .NETで、Win32 APIの関数をSystem.Runtime.InteropServices名前空間を利用して呼び出したく、チャレンジしておりますが、C#のやり方でやると記述エラーになります。 Google等で調べても、C#のものばかり出てくるのですが、VC++ .NETではWin32 API関数を呼び出すことはできないのでしょうか?

  • 64bit Linux上で32bitアプリケーションを使って共有メモリアクセス

    64bit Linux と共有メモリとの関係についてどなたか教えて いただけないでしょうか。  (現段階では、マシンもOSも64bitのものは無く、導入前での   検討段階です) 使いたいと思っているのは Red Hat Enterprise Linux 3.0 です。 現在動かしているアプリケーションが使っている共有メモリの サイズが大きくなってきたために64bitのLinuxを検討しています。 ただし、プログラム移行の手間を最小限にするめ、64bit環境上で 32bitライブラリにリンクしてmakeし直す程度の対応で済ませたいと 思っています(言語はCです)。 このような32bitアプリケーションが発行する共有メモリ関係の API‥たとえば、shmget()とかshmat()‥の呼び出しは、どこかの レイヤで最終的に64bit化されて動くと想像しています。 そうすると、32bit用のインターフェースに破綻を来たさない限りは、 総量で4GB超の共有メモリをアクセス可能(具体的には、総量として 4GBを越えて取得でき、参照時にはマッピングサイズが小さければ、 それらのいずれの部分もマッピングできる)と想像しているのですが そのような理解で良いでしょうか。 ちなみに、4GB超の大きなメモリを1つ使うわけではなく、100個前後 に分散した取得/マッピングをしています。つまり個々のブロックは 小さなサイズです。 よろしくお願いします。

  • Win10(32bit)⇒(64bit)にできない

    Win10(32bit)とWin7(64bit)をデュアルブートして使っていて、⇒ Win10(64bit)も追加してトリプルブートしようと思いますが、どうもインストールできません。 (1)Win10(64bit)のインストールDVDをBIOSから起動すると、DVD読込みしているがそのうちWin10マークのまま固まる。 (2)Win10(32bit)のエクスプローラから起動すると、bitバージョンエラー。 (3)Win7(64bit)のエクスプローラから起動すると、「このプロセッサは、CompareExchange128がサポートされていない」エラー。 などとなり、HDDの指定まで進みません。 このプロセッサはWin7で使えても、Win10では使えないのでしょうか。最新プロセッサではインストールできるのでしょうか? ------------- OS 名 Microsoft Windows 7 Home Premium バージョン 6.1.7601 Service Pack 1 ビルド 7601 システムの種類 x64-ベース PC プロセッサ AMD Athlon(tm) 64 X2 Dual Core Processor 4200+、2193 Mhz、2 個のコア、2 個のロジカル プロセッサ インストール済みの物理メモリ (RAM) 2.00 GB -----------

  • API関数とDLL関数

    API関数とDLL関数って同じものですか? ネットで調べると・・・ API関数=Win API→ひとつひとつの関数(単独で機能するプログラムコード の塊)。     API関数はdllファイルの中にある関数をさす。 とのようなことが書いてあります。つまり、DLL関数(私の認識であると、.dllファイルの中にある関数)であり、この関数はAPI関数と同定義と認識しています。 まだまだ初心者で、この認識があっているか確信がもてません。 どうか教えていただけないでしょうか?? お願いいたします。

  • C#でAPI利用

    C#でAPI、具体的にはVideo for windowsを使いたいのですが、 やり方がわかりません。APIを読み込む方法からわかりません。 読み込めてしまえば、あとは関数を呼び出せばよいとおもうのですが、、、、 初歩的な質問かもしれませんがよろしくおねがいします。