ページ 11

Windows用のプログラムをLinuxで使用できるものに書き変えるには?

Posted: 2014年10月07日(火) 16:53
by 機械工学科大学生
以下のWindows用のサンプルプログラムを書き変えLinuxで使用したいです。
 先日掲示板でご質問をさせていただきfopen,scanf,fclose等を用いプログラムの書き換えができそうであるという
ご回答いただき書き換えを行っていました。
 しかしながら私自身プログラムの学習を始めてから半年も経たないないため書き換え作業に手も足もでませんでした。
具体的にはサンプルプログラム内のcom_Open,com_Send,com_SendString,com_ReadLine,com_ReadPacket,com_Close
がそれぞれ何を行っているのかが分からないためどのようにかきかえたらよいのかが分かりません。

プログラムの書き換えはWindows内のVC++ 2008EEを使用しております。

書き変えに関し,ご教授よろしくお願いいたします。

コード:


BOOL com_Open(LPCTSTR comName)
{
	HANDLE hCom;
	hCom = CreateFile(comName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,  FILE_ATTRIBUTE_NORMAL, NULL );
	if(hCom == INVALID_HANDLE_VALUE){
		return FALSE;
	}
	s_hCom = hCom;
	return TRUE;
}


VOID com_Close()
{
	CloseHandle(s_hCom);
	s_hCom = NULL;
}

Re: Windows用のプログラムをLinuxで使用できるものに書き変えるには?

Posted: 2014年10月07日(火) 22:57
by 顔芸
それぞれの関数をどう使うのか,知識がなくてちょっとよくわからないのですが,
単純にファイルの開閉や読み書きがしたいなら関数のインタフェースだけそろえて,
実装にはlinuxで使用可能な関数やデータ構造を用いればよいのではないでしょうか.

適当にぐぐったら出てきたのですが参考になりませんかね
libusb
http://sourceforge.net/projects/libusb/ ... p_redirect

試しにダウンロードしたらlibusb-1.0.9/libusb/osにwindowsやlinux用のインタフェースが
用意されているようなので,見比べてみられてはいかがでしょう.(同一のインタフェースでは
なさそうなので直接比較して良いものかどうかは不明ですが・・)

それと,
プログラムの書き換えはWindows内のVC++ 2008EEを使用しております。
これからlinux用にソースを書き換えるというのならlinux用のデバッグ環境を用意した方が
よいのではないでしょうか.(仮想マシンを用いる等して.)

参考までに.

VirtualBox
https://www.virtualbox.org/

VMware Player
https://www.vmware.com/jp/

Re: Windows用のプログラムをLinuxで使用できるものに書き変えるには?

Posted: 2014年10月09日(木) 11:34
by 機械工学科大学生
ご回答ありがとうございます。
linuxで使用可能な関数やデータ構造を参考にしようと思いましたが,
インターフェースが異なるため比較することが難しくなっております。
プログラムの使用を行うデバイスは6軸モーションセンサのため,それに
似たようなプログラムも見てみようと思います。


環境に関しての助言ありがとうございます。
linux用のデバック環境は参考にさせていただき用意をしたいと思います。