12 个解决方案
#1
楼主举个例子吧问题具体化一点吧。
从具体化的例子开始,再来讨论更通用的解决方案更好一点
从具体化的例子开始,再来讨论更通用的解决方案更好一点
#2
不懂唉
你要读取矢量信息的话就去http://www.opendwg.org下载一个dll
就可以读取了。
参考:http://topic.csdn.net/t/20030508/02/1753400.html
你要读取矢量信息的话就去http://www.opendwg.org下载一个dll
就可以读取了。
参考:http://topic.csdn.net/t/20030508/02/1753400.html
#3
谢谢你们的关注,这个问题可以这么理解:有两个运用程序,这两个运用程序要共享一套数据。这该如何实现?如果可以有代码就更好了,期待ing
#4
1) 公享数据段
2) File Mapping (推荐)
3) Socket
2) File Mapping (推荐)
3) Socket
#5
我也刚找到File Mapping,麻烦问问楼上的CreateFileMapping如何用阿?
找不到例子
找不到例子
#6
谁知道文件映射对象如何用,最好给段代码,不胜感激,在线等待!
#7
File mapping 是和 剪切板的功能类似不? study
#8
HANDLE hFile = CreateFile("c:\\octopus.txt",GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
if(hFile!=INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"CreateFunction OK!","error!",MB_OK);
}
cout<<"error code: "<<GetLastError()<<endl;
HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,100,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
BYTE *pbFile,somebyte;
pbFile = (PBYTE)MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0);
pbFile[0] = 97;
pbFile[1] = 65;
somebyte = pbFile[0];
cout<<"somebyte"<<somebyte<<endl;
CloseHandle(hFileMap);
CloseHandle(hFile);
这个是FileMapping的简单代码,不知道对你有没有用,还是贴上来吧,不过如果楼主要用FileMapping最好把Win32帮助文档好好看看,要不然可能会有很多非常奇怪的错误.
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
if(hFile!=INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"CreateFunction OK!","error!",MB_OK);
}
cout<<"error code: "<<GetLastError()<<endl;
HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,100,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
BYTE *pbFile,somebyte;
pbFile = (PBYTE)MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0);
pbFile[0] = 97;
pbFile[1] = 65;
somebyte = pbFile[0];
cout<<"somebyte"<<somebyte<<endl;
CloseHandle(hFileMap);
CloseHandle(hFile);
这个是FileMapping的简单代码,不知道对你有没有用,还是贴上来吧,不过如果楼主要用FileMapping最好把Win32帮助文档好好看看,要不然可能会有很多非常奇怪的错误.
#9
MSND上就有一个简单的例子的.同一台机器上不同进程之间的数据同步都是基于内存映射文件来实现的,建议用这个.
#10
DLL和EXE通讯,不用搞得太复杂算了,直接用SOCKET通讯
呵呵
呵呵
#11
socket???? 真是杀鸡用牛到
pipe,clipboard, filemapping, named pipe, mailslot 那个都比socket方便
pipe,clipboard, filemapping, named pipe, mailslot 那个都比socket方便
#12
谢谢大家关注,结贴给分
#1
楼主举个例子吧问题具体化一点吧。
从具体化的例子开始,再来讨论更通用的解决方案更好一点
从具体化的例子开始,再来讨论更通用的解决方案更好一点
#2
不懂唉
你要读取矢量信息的话就去http://www.opendwg.org下载一个dll
就可以读取了。
参考:http://topic.csdn.net/t/20030508/02/1753400.html
你要读取矢量信息的话就去http://www.opendwg.org下载一个dll
就可以读取了。
参考:http://topic.csdn.net/t/20030508/02/1753400.html
#3
谢谢你们的关注,这个问题可以这么理解:有两个运用程序,这两个运用程序要共享一套数据。这该如何实现?如果可以有代码就更好了,期待ing
#4
1) 公享数据段
2) File Mapping (推荐)
3) Socket
2) File Mapping (推荐)
3) Socket
#5
我也刚找到File Mapping,麻烦问问楼上的CreateFileMapping如何用阿?
找不到例子
找不到例子
#6
谁知道文件映射对象如何用,最好给段代码,不胜感激,在线等待!
#7
File mapping 是和 剪切板的功能类似不? study
#8
HANDLE hFile = CreateFile("c:\\octopus.txt",GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
if(hFile!=INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"CreateFunction OK!","error!",MB_OK);
}
cout<<"error code: "<<GetLastError()<<endl;
HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,100,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
BYTE *pbFile,somebyte;
pbFile = (PBYTE)MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0);
pbFile[0] = 97;
pbFile[1] = 65;
somebyte = pbFile[0];
cout<<"somebyte"<<somebyte<<endl;
CloseHandle(hFileMap);
CloseHandle(hFile);
这个是FileMapping的简单代码,不知道对你有没有用,还是贴上来吧,不过如果楼主要用FileMapping最好把Win32帮助文档好好看看,要不然可能会有很多非常奇怪的错误.
FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
if(hFile!=INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"CreateFunction OK!","error!",MB_OK);
}
cout<<"error code: "<<GetLastError()<<endl;
HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,100,NULL);
cout<<"Last Error Code: "<<GetLastError()<<endl;
BYTE *pbFile,somebyte;
pbFile = (PBYTE)MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0);
pbFile[0] = 97;
pbFile[1] = 65;
somebyte = pbFile[0];
cout<<"somebyte"<<somebyte<<endl;
CloseHandle(hFileMap);
CloseHandle(hFile);
这个是FileMapping的简单代码,不知道对你有没有用,还是贴上来吧,不过如果楼主要用FileMapping最好把Win32帮助文档好好看看,要不然可能会有很多非常奇怪的错误.
#9
MSND上就有一个简单的例子的.同一台机器上不同进程之间的数据同步都是基于内存映射文件来实现的,建议用这个.
#10
DLL和EXE通讯,不用搞得太复杂算了,直接用SOCKET通讯
呵呵
呵呵
#11
socket???? 真是杀鸡用牛到
pipe,clipboard, filemapping, named pipe, mailslot 那个都比socket方便
pipe,clipboard, filemapping, named pipe, mailslot 那个都比socket方便
#12
谢谢大家关注,结贴给分