Ignore:
Timestamp:
Mar 28, 2009, 12:12:58 PM (16 years ago)
Author:
イグトランス (egtra)
Message:

読み取りのみのファイル操作の場合、CreateFileでFILE_SHARE_READ指定を追加。コンパイラを同時起動しても正常動作させるための修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/RSrcSection.cpp

    r750 r769  
    9898    foreach( const ActiveBasic::Common::ResourceItem &resourceItem, compiler.resourceManager.cursorResources )
    9999    {
    100         hFile=CreateFile(resourceItem.filepath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     100        hFile=CreateFile(resourceItem.filepath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    101101        if(hFile==INVALID_HANDLE_VALUE){
    102102            compiler.errorMessenger.Output(23,resourceItem.filepath.c_str(),-1);
     
    118118    foreach( const ActiveBasic::Common::ResourceItem &resourceItem, compiler.resourceManager.bitmapResources )
    119119    {
    120         hFile=CreateFile(resourceItem.filepath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     120        hFile=CreateFile(resourceItem.filepath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    121121        if(hFile==INVALID_HANDLE_VALUE){
    122122            compiler.errorMessenger.Output(23,resourceItem.filepath.c_str(),-1);
     
    130130    foreach( const ActiveBasic::Common::ResourceItem &resourceItem, compiler.resourceManager.iconResources )
    131131    {
    132         hFile=CreateFile(resourceItem.filepath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     132        hFile=CreateFile(resourceItem.filepath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    133133        if(hFile==INVALID_HANDLE_VALUE){
    134134            compiler.errorMessenger.Output(23,resourceItem.filepath.c_str(),-1);
     
    661661    //カーソルリソース
    662662    for(i3=0,i6=0;i3<static_cast<int>(compiler.resourceManager.cursorResources.size());i3++){
    663         hFile=CreateFile(compiler.resourceManager.cursorResources[i3].filepath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     663        hFile=CreateFile(compiler.resourceManager.cursorResources[i3].filepath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    664664        if(hFile==INVALID_HANDLE_VALUE){
    665665            compiler.errorMessenger.Output(23,compiler.resourceManager.cursorResources[i3].filepath.c_str(),-1);
     
    741741    //ビットマップリソース
    742742    for(i3=0;i3<static_cast<int>(compiler.resourceManager.bitmapResources.size());i3++){
    743         hFile=CreateFile(compiler.resourceManager.bitmapResources[i3].filepath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     743        hFile=CreateFile(compiler.resourceManager.bitmapResources[i3].filepath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    744744        if(hFile==INVALID_HANDLE_VALUE){
    745745            compiler.errorMessenger.Output(23,compiler.resourceManager.bitmapResources[i3].filepath.c_str(),-1);
     
    769769    //アイコンリソース
    770770    for(i3=0,i6=0;i3<static_cast<int>(compiler.resourceManager.iconResources.size());i3++){
    771         hFile=CreateFile(compiler.resourceManager.iconResources[i3].filepath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     771        hFile=CreateFile(compiler.resourceManager.iconResources[i3].filepath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    772772        if(hFile==INVALID_HANDLE_VALUE){
    773773            compiler.errorMessenger.Output(23,compiler.resourceManager.iconResources[i3].filepath.c_str(),-1);
     
    852852    if( !compiler.resourceManager.manifestFilePath.empty() )
    853853    {
    854         hFile=CreateFile(compiler.resourceManager.manifestFilePath.c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     854        hFile=CreateFile(compiler.resourceManager.manifestFilePath.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    855855        if(hFile==INVALID_HANDLE_VALUE){
    856856            compiler.errorMessenger.Output(59,compiler.resourceManager.manifestFilePath.c_str(),-1);
Note: See TracChangeset for help on using the changeset viewer.